我正在尝试检查我的数据库中是否存在这样的行:
$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的东西混在一起?< / p>
我已经尝试了很多,尝试了一些示例,但往往会收到错误:mysql_fetch_array() expects parameter 1 to be resource, string given
或者我应该在查询中检查它?
答案 0 :(得分:1)
错误在哪一行?!
如果它位于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
}
此外,您需要清理检查查询字符串的方式 - 只需处理您想要的查询变量,而不是整个字符串。建议对查询变量和表列使用不同的名称。