mysqli查询在被ajax发送后不能在php代码中工作

5kgi1eie  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(249)

我在一些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语句之前,我总是用普通查询做一些测试,无论如何,谢谢你的提醒。

ttvkxqim

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).

if( ($res = $link->query($queryString)) ){
    if( $res->num_rows > 0 ){
        $row = $res->fetch_assoc();
        /* Do something with result */
    }else{
        /* No results, do something else */
    }
}

在这之前。。。应避开所有必要的数据以避免注入攻击:

$link->escape_string($aString);

相关问题