无法执行 SELECT Login_Name FROM memberdirectory WHERE Login_Name = saviobosco(1054)“where 子句”中的未知列“savio

Posted

技术标签:

【中文标题】无法执行 SELECT Login_Name FROM memberdirectory WHERE Login_Name = saviobosco(1054)“where 子句”中的未知列“saviobosco”[关闭]【英文标题】:Could not execute SELECT Login_Name FROM memberdirectory WHERE Login_Name = saviobosco (1054)Unknown column 'saviobosco' in 'where clause' [closed] 【发布时间】:2014-10-03 02:12:46 【问题描述】:
$username = stripslashes($username); 


// check if usernames exists   


$sql = "SELECT Login_Name FROM memberdirectory WHERE Login_Name = $username";  


if ($result = mysqli_query($pdo,$sql))    

    $row = mysqli_num_rows($result);    

    // if yes, fetch the encrypted password  

【问题讨论】:

由于您使用的是mysqli,因此您可以使用绑定参数来避免该(以及许多其他)问题。 警告 SQL Injection Attack 前方。使用准备好的语句。 我不赞成,因为我们不喜欢在没有介绍性段落的情况下将代码转储到问题中。请愿意写介绍,而不仅仅是“见标题”。说明您尝试解决的问题,以及网络上是否有任何类似的问题可能会有所帮助。 这也是1054 - Unknown column 'apa_calda' in 'where clause' 的副本(以及其他几个,请参阅相关边栏)。在这种情况下,您需要做的就是搜索“SELECT 无法执行未知列 MySQL”。 【参考方案1】:

您在字符串值周围缺少引号:

$sql = "SELECT Login_Name FROM memberdirectory WHERE Login_Name = '$username'";

【讨论】:

【参考方案2】:

如果您使用的是 mysqli,为什么要限制自己手动清理输入? MysqlI 已经准备好语句来正确处理和格式化您的查询。

$Conn = new mysqli("host","user","pass","database");

$Query = $Conn->prepare("SELECT Login_Name FROM memberdirectory WHERE Login_name=?");
$Query->bind_param('s',$username);
$Query->execute();
$Query->fetch();
$Row_Number = $Query->num_rows;
$Query->close(); // close the connection. Always a benefit and can save you complications later down the line 

然后验证:

if ($Row_Number > 0)

 // Example only. 

【讨论】:

【参考方案3】:
$username = stripslashes($username); 
$sql = "SELECT Login_Name FROM memberdirectory WHERE Login_Name =".$username;
if ($result = mysqli_query($pdo,$sql))    

    $row = mysqli_num_rows($result);

【讨论】:

这将给出相同的错误消息,$username 需要在 '...' 内。

以上是关于无法执行 SELECT Login_Name FROM memberdirectory WHERE Login_Name = saviobosco(1054)“where 子句”中的未知列“savio的主要内容,如果未能解决你的问题,请参考以下文章

oracle 中execute immediate作用

java Struts2 url 传参 中文乱码

java实体类驼峰命名的好处在哪里??

有条件地匹配当前节点值

mysql 无法执行select查询

如何查看SQL SERVER数据库当前连接数