Php 如果行已存在,请检查mysqli结果
我试图检查我的数据库中是否存在这样的行:Php 如果行已存在,请检查mysqli结果,php,duplicates,Php,Duplicates,我试图检查我的数据库中是否存在这样的行: $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);
$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!';
}
但我一直得到一个错误:试图在…中获取非对象的属性
所以,如果它存在,我做一件事,如果它不存在,我做另一件事,我已经寻找了大约一个小时的原因,也许我把旧的PHP4和我的PHP5的东西混在一起了
我已经尝试了很多,尝试了一些示例,但往往会出现错误:mysql\u fetch\u数组期望参数1是资源,字符串给定
或者我应该在查询本身中检查它吗?错误在哪一行 如果它位于real_escape_字符串行上,则说明您没有正确实例化$db 如果它位于$results->num_rows行,请尝试更改 $results=$db->query$queryE;致:
此外,还需要清理检查查询字符串的方式—只需处理所需的查询变量,而不是整个字符串。还建议对查询变量和表列使用不同的名称。您知道查询变量的故事吗?你所做的是一个非常糟糕的主意。你的代码看起来有问题。按照它的写作方式,我建议你先解决它的许多问题,然后再考虑你的具体问题。你可能想先问一些问题。好吧,如果你能指出你认为它存在的“许多问题”,除了通常的“天哪,noob sql注入警报!”。事实上我没有包括我的$db定义?
if(!($results = $db->query($queryE))) {
echo 'Make new row';
} else {
// user likely exists, check $results
}