C# I';我无法在mysql usnig c中将我的ip地址作为输入传递到我的数据库#

C# I';我无法在mysql usnig c中将我的ip地址作为输入传递到我的数据库#,c#,mysql,C#,Mysql,我无法使用c#将我的ip地址作为输入传递到mysql中的数据库 我的代码: string Query = ("SELECT mobile FROM UserDetails where machine_ip=" +ipaddress); 如果是如下所示的字符串:“1234567890” 但是如果它看起来是这样的话就不起作用了:“127.0.0.0”试试这个: "SELECT mobile FROM UserDetails where machine_ip = '" + ipaddress + "

我无法使用c#将我的ip地址作为输入传递到mysql中的数据库 我的代码:

string Query = ("SELECT mobile FROM UserDetails where machine_ip=" +ipaddress);
如果是如下所示的字符串:“1234567890” 但是如果它看起来是这样的话就不起作用了:“127.0.0.0”

试试这个:

"SELECT mobile FROM UserDetails where machine_ip = '" + ipaddress + "'"

也应该考虑使用参数化查询来避免SQL注入漏洞,如果这是面向最终用户的代码。

试试这个:

"SELECT mobile FROM UserDetails where machine_ip = '" + ipaddress + "'"

也应考虑使用参数化查询来避免SQL注入漏洞,如果这是面向最终用户的代码。

< P>不需要将字符串放入SQL字符串中的引号…或者更好的是,使用参数化查询(这样可以帮助您抵御SQL注入攻击)

您不需要将字符串放在SQL字符串中的引号中。。。或者更好的方法是,使用参数化查询(这样可以帮助您抵御SQL注入攻击)

在不知道数据库组成的情况下,
machine\u ip
很可能不是
VARCHAR
。这就是为什么一个数字可以工作,但带有“ASCII”的IP地址不能工作。

在不知道数据库组成的情况下,
machine\u IP
很可能不是
VARCHAR
。这就是为什么一个数字有效,但带有“ASCII”的IP地址无效。

将其添加到撇号中

string Query = ("SELECT mobile FROM UserDetails where machine_ip='" +ipaddress+ "'");

加上撇号

string Query = ("SELECT mobile FROM UserDetails where machine_ip='" +ipaddress+ "'");

似乎您应该在ipaddress中加上' 像这样:

"SELECT mobile FROM UserDetails where machine_ip='" + ipaddress + "'"
("SELECT mobile FROM UserDetails where machine_ip='" + ipaddress + "'");

似乎您应该在ipaddress中加上' 像这样:

"SELECT mobile FROM UserDetails where machine_ip='" + ipaddress + "'"
("SELECT mobile FROM UserDetails where machine_ip='" + ipaddress + "'");

如果在数据库中存储的ip地址没有像127001这样的点,则应从输入字符串ip中删除这些点

string res = inputId.Replace(".","");

不要在SQL语句中使用字符串连接使用参数化查询

如果在数据库中存储的ip地址没有像127001这样的点,则应该从输入字符串ip中删除这些点

string res = inputId.Replace(".","");

不要在SQL语句中使用字符串连接使用参数化查询

127.0.0.0
不能隐式转换为字符串,因此必须这样调用它:

"SELECT mobile FROM UserDetails where machine_ip='" + ipaddress + "'"
("SELECT mobile FROM UserDetails where machine_ip='" + ipaddress + "'");

哦,请注意。

127.0.0.0
无法隐式转换为字符串,因此您必须这样称呼它:

"SELECT mobile FROM UserDetails where machine_ip='" + ipaddress + "'"
("SELECT mobile FROM UserDetails where machine_ip='" + ipaddress + "'");

哦,请注意。

在数据库中存储IP地址有两种方法,一种是正确的方法,另一种是错误的方法

正确的方法是将IP地址转换为10进制整数—127.0.0.1转换为2130706433,192.168.10.10转换为3232238090

错误的方法是将带有句点的值存储为字符串

如果存储IP的人使用了正确的方法,那么您只需要在查询中的INET_ATON调用中封装您的IP地址,如下所示:

SELECT mobile FROM UserDetails where machine_ip=INET_ATON('127.0.0.1');
如果表中的IP地址存储为字符串,则只需将地址用单引号括起来,一切都会正常工作(尽管效率较低)


在数据库中存储IP地址有两种方法,一种是正确的方法,另一种是错误的方法

正确的方法是将IP地址转换为10进制整数—127.0.0.1转换为2130706433,192.168.10.10转换为3232238090

错误的方法是将带有句点的值存储为字符串

如果存储IP的人使用了正确的方法,那么您只需要在查询中的INET_ATON调用中封装您的IP地址,如下所示:

SELECT mobile FROM UserDetails where machine_ip=INET_ATON('127.0.0.1');
如果表中的IP地址存储为字符串,则只需将地址用单引号括起来,一切都会正常工作(尽管效率较低)


所以。。。如果有人拥有IP 192.168.11.1,而其他人拥有IP 192.168.1.11,该怎么办?;)所以。。。如果有人拥有IP 192.168.11.1,而其他人拥有IP 192.168.1.11,该怎么办?;)