我試圖從表中刪除一行,並檢查它是否工作/是否已找到並刪除了一行。我使用以下查詢來執行此操作: DELETE FROM TableName WHERE val1=1 AND val2=2 AND val3=3
。我使用準備和執行功能通過連接$conn
發送該代碼,並且它工作得很好。我正在查找的行正在被查找和刪除。但是如果我想檢查它是否使用$conn->affected_rows
它返回-1,這意味着發生錯誤。我不明白,哪裏可能出現錯誤,即affected_rows
返回-1,即使查詢已正確執行...PHP/MySQL:正確執行查詢,affected_rows返回-1
如果您不明白該問題,請隨時在評論中提問。
代碼:
$query = "DELETE FROM ComTasks WHERE comid=? AND obj=? AND type=0";
$response = paramQuery($conn, $query, array($communityid, $userid), "ss");
echo $conn->affected_rows; //=> -1
function paramQuery($conn, $query, $params, $str){
if(!is_array($params)) $params = array($params);
$stmt = $conn->prepare($query);
if($stmt === false) return -1;
for($i=0; $i<count($params); $i++){
$params[$i] = &$params[$i];
}
array_unshift($params, $str);
call_user_func_array(array($stmt, 'bind_param'), $params);
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
return $result;
}
請顯示代碼。 – Jeff
並且你檢查了'$ conn-> error'嗎? – Jeff
$ conn-> error什麼也沒有返回 – Unknown