Php stmt查询工作正常,但简单查询得到致命错误:未捕获错误
使用stmt可以正常工作,但简单查询中有一个错误。使用面向对象的php脚本 致命错误:未捕获错误:调用成员函数获取字符串上的数组。。。堆栈跟踪:在下一行抛出0{main}** 我有以下疑问: $SearchQuery=从工作地点选择*; ifisset$\u COOKIE['option1']{ $Opt1='1'; $SearchQuery.=阶段=“$Opt1”或; } ifisset$\u COOKIE['option2']{ $Opt2='2'; $SearchQuery.=阶段=“$Opt2”或; } ifisset$\u COOKIE['option3']{ $Opt3='3'; $SearchQuery.=阶段=“$Opt3”或; } ifisset$\u COOKIE['option4']{ $Opt4='4'; $SearchQuery.=阶段=“$Opt4”或; } ifisset$\u COOKIE['option5']{ $Opt5='5'; $SearchQuery.=阶段=“$Opt5”或; } ifisset$\u COOKIE['option6']{ $Opt6='6'; $SearchQuery.=阶段=“$Opt6”或; } $SearchQuery.=FALSE; IFAsset$\u COOKIE['FromDate']{ $From=$_COOKIE['FromDate']; $SearchQuery.=并创建_date>“$From”; } ifisset$\u COOKIE['ToDate']{ $To=$_COOKIE['ToDate']; $SearchQuery.=并创建日期<'$To'; } $SearchQuery.=和ID='$WorkID'; $SearchQuery.=按创建日期描述的订单限额100; 下面是错误行: $row=$SearchQuery->fetch\u arrayMYSQLI\u ASSOCPhp stmt查询工作正常,但简单查询得到致命错误:未捕获错误,php,sql,select,Php,Sql,Select,使用stmt可以正常工作,但简单查询中有一个错误。使用面向对象的php脚本 致命错误:未捕获错误:调用成员函数获取字符串上的数组。。。堆栈跟踪:在下一行抛出0{main}** 我有以下疑问: $SearchQuery=从工作地点选择*; ifisset$\u COOKIE['option1']{ $Opt1='1'; $SearchQuery.=阶段=“$Opt1”或; } ifisset$\u COOKIE['option2']{ $Opt2='2'; $SearchQuery.=阶段=“$O
缺少$db->query$SearchQuery 看起来您并没有执行查询,并且犯了一些小错误,如以下$row=$SearchQuery->fetch\u arrayMYSQLI\u ASSOC
错误消息的哪一部分可能不清楚?这里没有任何实际的对象,这将有任何fetch_数组方法-您只有一个普通字符串。您需要先执行SQL查询,然后才能从结果中提取任何记录。将$row=$SearchQuery->fetch_arrayMYSQLI_ASSOC更改为$row=$SearchQuery->fetch_arrayMYSQLI_ASSOC;听了CBroe的话。天哪,我真是太瞎了,谢谢你的评论,它帮了我很多忙,这是第四天找麻烦了!
$SearchQuery = "SELECT * FROM work WHERE ((";
if(isset($_COOKIE['option1'])){
$Opt1 = '1';
$SearchQuery .= "Phase = '$Opt1' OR ";
}
if(isset($_COOKIE['option2'])){
$Opt2 = '2';
$SearchQuery .= "Phase = '$Opt2' OR ";
}
if(isset($_COOKIE['option3'])){
$Opt3 = '3';
$SearchQuery .= "Phase = '$Opt3' OR ";
}
if(isset($_COOKIE['option4'])){
$Opt4 = '4';
$SearchQuery .= "Phase = '$Opt4' OR ";
}
if(isset($_COOKIE['option5'])){
$Opt5 = '5';
$SearchQuery .= "Phase = '$Opt5' OR ";
}
if(isset($_COOKIE['option6'])){
$Opt6 = '6';
$SearchQuery .= "Phase = '$Opt6' OR ";
}
$SearchQuery .= "FALSE) ";
if(isset($_COOKIE['FromDate'])){
$From = $_COOKIE['FromDate'];
$SearchQuery .= "AND Create_date > '$From' ";
}
if(isset($_COOKIE['ToDate'])){
$To = $_COOKIE['ToDate'];
$SearchQuery .= "AND Create_date < '$To' ";
}
$SearchQuery .= "AND ID = '$WorkID') ";
$SearchQuery .= "ORDER BY Create_date desc LIMIT 100";
$result = $mysqli->query($SearchQuery);
//Mysqli is $db connection variable change it to yours, I didnt see in question
if(!$result){ return $mysqli->error;}
//You can use num_rows to check if searched result exist in db like following
//if ($result->num_rows > 0) {
$row = $result->fetch_array(MYSQLI_ASSOC);
//if you wanna use while loop
//while($row = $result->fetch_array(MYSQLI_ASSOC)) {echo "return values here";}
//uncomment following if you wanna use num_rows and uncommented up there
// }else{echo "No result found";}
$result -> free_result();