我在一些myqsli查询中遇到了一些问题。
$sqlselect = "SELECT visitatori_id FROM visitatori WHERE visitatori_nome='".$nome."' AND visitatori_cognome='".$cognome."' AND
visitatori_orastart='".$time."' AND visitatori_idsede='".$idsede."'";
if ($conn->query($sqlselect) === TRUE)
{
$resultz = $conn->query($sqlselect);
$rowz = $resultz->fetch_assoc();
$id = $rowz["visitatori_id"];
$data = date('dmY');
$arr = $id."/".$data.$idref.$idrep.$idsede;
$JSON->value = $arr;
$json = json_encode($JSON);
echo $json;
break;
}
else
{
$JSON->value = $conn->error;
$json = json_encode($JSON);
echo $json;
break;
}
在db上启动的查询完全没有问题。但是如果我尝试在php代码中启动它 if
退货 false
,和 $conn->error
只是 ""
.
我找了很多,但找不到任何至少能让我看到错误的东西。
编辑
我知道这段代码可以被注入,但在mysqli语句之前,我总是用普通查询做一些测试,无论如何,谢谢你的提醒。
1条答案
按热度按时间ttvkxqim1#
您的条件检查需要检查“not false”或松散的true(=)(mysqli\u query在成功选择时返回mysqli\u result object,在失败时返回false:http://php.net/manual/en/mysqli.query.php).. 当我确信你不是有意的时候,你正在执行两次相同的查询。另外,正如其他人所说,此代码易于注入(请参阅:http://php.net/manual/en/mysqli.real-escape-string.php, https://en.wikipedia.org/wiki/sql_injection).
在这之前。。。应避开所有必要的数据以避免注入攻击: