0

我正在尝试检查我的数据库中是否存在这样的行:

 $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

还是我应该在查询本身中检查它?

4

1 回答 1

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
}

此外,您需要清理检查查询字符串的方式——只处理您想要的查询变量,而不是整个字符串。还建议为查询变量和表列使用不同的名称。

于 2012-05-29T03:03:22.217 回答