簡體   English   中英

mysqli prepare返回false,但SQL有效

[英]mysqli prepare returns false but SQL is valid

我正在使用mysqli的prepare函數來創建對數據庫的查詢,但是即使我在同一頁面的較早位置上有很多請求,它也對我失敗。

我的查詢如下所示:

if ($insert = $mysqli->prepare( "INSERT INTO table_name (id_user, token) VALUES (?, ?)")) {
    // Do some cool stuff here
} else {
    var_dump($mysqli->error);
    var_dump($insert->error);
}

在執行過程中,它進入else,輸出為:

string(0) "" //var_dump($mysqli->error);
Notice: Trying to get property of non-object in // var_dump($insert->error);

我知道我的$ mysqli正在工作,因此我也在prepare語句中測試了這些字符串。 他們都沒有以太工作。 (我在mysql / phpmyadmin中測試了它們,它們工作正常)

"INSERT INTO `table_name` (`id_user`, `token`) VALUES (?, ?)"
"INSERT INTO `table_name` (`table_name`.`id_user`, `table_name`.`token`) VALUES (?, ?)"
'INSERT INTO `table_name` (`id_user`, `token`) VALUES (50, "random_token")'

有人可以幫我這個小小的頭痛嗎?

謝謝

該錯誤實際上是在抱怨未定義$ insert ...這很有意義,因為它正在擊中您的else語句。

Notice: Trying to get property of non-object in // var_dump($insert->error);

請注意您自己注釋的錯誤以及它實際上在抱怨什么。 您不應在else語句中引用$ insert變量

我終於弄明白了。 問題是我沒有關閉以前的連接。 其中一個已經在使用相同的名稱$ insert

我為可能找到此線程的人找到了兩個可能的修復程序。

修復1- 關閉您的連接 ,就這么簡單

$connectionVariable->close();

修正2-用不同的名稱命名變量。 雖然您應該始終先執行Fix 1。 我想我必須很難找到它。

PS感謝所有幫助我的人

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM