【发布时间】:2011-09-07 11:09:09
【问题描述】:
得到了一些我正在努力解决的 PHP 代码 - 在 Google 等周围进行了搜索并尝试了提到的所有内容,但由于某种原因我无法解决它。
问题是:
我有一些代码正在查询数据库中是否存在特定用户。
代码(类中的方法)
<?php
global $mysqli;
// Query specified database for value
$q = 'SELECT id FROM ' . $database . ' WHERE username = \'' . $username . '\'';
$r = $mysqli->query($q);
var_dump($r);
if ($r->num_rows) {
// If row found username exists so return false
return false;
}
...
?>
我已经 var 转储了查询的结果 ($r) 并得到了这个:
object(mysqli_result)#4 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }
这是正确的,应该只有上面的 1 行。
我确实收到此错误链接到if ($r->num_rows) { 的行
注意:试图在LINE LINE上获取FILE中非对象的属性
但我不知道为什么,因为该对象是有效的(如上所述)并且它应该可以正常工作。据我所知,它似乎一切正常,我只是想知道为什么会出现错误。我确信这很简单,但我会很感激任何帮助。
【问题讨论】:
-
确实很奇怪,试试
var_dump($r->num_rows)。顺便说一句:如果您使用的是 mysqli,为什么不使用准备好的语句或至少转义插入的值? -
你试过 $r["num_rows"]
-
目前这只是早期开发,所以我没有添加任何转义等,但是一旦它发布,它就会相应地添加。对我的实际问题有什么想法吗?
-
你正在使用全局,让我猜你正在将 $r 传递给另一个文件进行处理
-
@Haim 是的,我使用了 $mysqli = new mysqli('localhost', 'user', '', 'db');