[UPDATED]新代码“sql_real_escape_string()”
[更新]如果有人想在 Test site 看它的网站
[UPDATED] with while代码通过echo显示任何结果
大家好,
我已经看了很多关于这个问题的帖子,但是根本无法理解为什么以下代码不起作用:
$username = $_POST['username'];
// get the record of the user, by looking up username in the database.
$query = sprintf("SELECT UserName, Password FROM userlogin WHERE UserName='%s'", MysqL_real_escape_string($username));
$result = MysqLi_query($dbc, $query) or
die ("Error Querying Database for: " . $query .
"<br />Error Details: " . MysqL_error() . "<br/>" . $result);
while ($row = MysqLi_fetch_assoc($result))
{
Echo($row['UserName']);
}
代码似乎是正确的……数据库工作正常(出于输入目的),连接是应用require_once(‘databaseconnection.PHP’)的共享连接;这是为了注册方面的事情.
像平常一样,我确信这是一件简单的事情,我忽略了但却不能为我的生活看到它!
我没有从myssql_error()获得任何错误消息,它只是空白.
任何帮助将非常感激.
问候
解决方法:
检查您尝试查询的用户名,因为它可能为空.你真的使用post-request来运行那个脚本吗?你如何验证它不起作用?查询后你用$data做什么?
如果似乎什么也没发生,那么很可能你的查询与任何记录都不匹配.检查您要查找的用户名的空格和大小写.
请注意这些警告:
>在sql中使用之前,请使用预准备语句或至少sql-escape任何用户输入.
>不要仅在严格的代码中使用die进行调试.