我正在尝试检查我的数据库中是否存在一行,如下所示:
$uid = $_GET['queryString'];
if(isset($_GET['queryString'])) {
echo "New: ".$uid."<BR>";
$query = "SELECT * FROM stuff WHERE $uid";
// Escape Query
$queryE = $db->real_escape_string($query);
$results = $db->query($queryE);
if(($results->num_rows) > 0) {
echo "NO!";
}
else
{
echo "Make new row";
}
}
else
{
echo 'Error!';
}
但是我不断收到错误:Trying to get property of non-object in ....
所以如果它存在,我会做一件事,如果它不存在,我会做另一件事,我已经搜索了大约一个小时来找到原因,也许我把旧的 PHP4 和我的 PHP5 东西混在一起了?
我已经尝试了很多,尝试了一些示例,但往往会得到错误:mysql_fetch_array() expects parameter 1 to be resource, string given
还是我应该在查询本身中检查它?
错误在哪一行?!
如果它位于real_escape_string
行上,则您尚未正确实例化$db。
如果它在$results->num_rows
行上,请尝试更改
$results = $db->query($queryE);
到:
if(!($results = $db->query($queryE))) {
echo 'Make new row';
} else {
// user likely exists, check $results
}
此外,您需要清理检查查询字符串的方式 - 只需处理所需的查询变量,而不是整个字符串。还建议对查询变量和表列使用不同的名称。