MySQL 查询使用转义的 $_SESSION var 返回布尔值


MySQL Query using escaped $_SESSION var returns boolean?

我遇到了一点麻烦。我需要在表中返回一组数据。

快速这是表结构 -

DB ->
users -> user_id , user_name , user_pass , user_email ;
urls -> user_id , url , title ;

在页面上,我有当前登录的用户,user_id $_SESSION 变量 - 会话"user_id"。我需要返回 urls 表内与 SESSION 变量中设置的匹配user_id相同的所有 (url)。这是我拥有的代码,它几乎可以工作,但是当我尝试获取数组时,它正在从$results中获取布尔值。任何帮助将不胜感激!print_r的最后一行只是为了查看返回的内容。

$mysqli = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$sql = "SELECT * FROM url WHERE user_id = ";
$sql .= mysqli_real_escape_string($mysqli, $_SESSION['user_id']);
$result = mysqli_query($mysqli, $sql);
$row = mysqli_fetch_array($result, MYSQLI_NUM);
print_r($row);

这是我得到的错误 -

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in     C:'xampp'htdocs'practice'include'feed.php on line 10

10号线是这条线...

$row = mysqli_fetch_array($result, MYSQLI_NUM);

再次感谢!

试试

$mysqli = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$escapedID = mysqli_real_escape_string($mysqli, $_SESSION['user_id']);
$sql = "SELECT * FROM url WHERE user_id = '".$escapedID."'";
$result = mysqli_query($mysqli, $sql);
$row = mysqli_fetch_array($result, MYSQLI_NUM);
print_r($row);
mysqli_query()失败

时返回FALSE。请参阅此处的文档。查询可能失败,因为您在FROM子句中编写了"url";您在上面将表名称列为"URL"。