學習如何利用mysqli預處理語句進行資料庫操作
P粉838563523
2023-08-24 16:54:12
<p>我正在嘗試使用預處理語句,但是下面的程式碼不起作用。我收到了以下錯誤:</p>
<blockquote>
<p>致命錯誤:在/var/www/prepared.php的第12行呼叫非物件的成員函數execute()</p>
</blockquote>
<pre class="brush:php;toolbar:false;"><?php
$mysqli = new mysqli("localhost", "root", "root", "test");
if ($mysqli->connect_errno) {
echo "連線MySQL失敗:" . $mysqli->connect_error;
}
$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");
// 插入一行
$stmt->execute(array('one',1));
// 插入另一行,使用不同的值
$stmt->execute(array('two',1));
?></pre>
<p>另外,我需要使用mysqli來進行預處理語句嗎?有沒有人能給我指出一個完整的預處理語句的範例,包括連接、插入和選擇以及錯誤處理? </p>
你也可以使用我更喜歡的PDO。實際上,在你的程式碼範例中,你似乎混淆了PDO和Mysqli。
與mysqli不同,你不需要呼叫單獨的綁定函數,儘管如果你喜歡/想要/需要使用它,該功能是可用的。
PDO的另一個有趣之處是命名佔位符,它在複雜查詢中可能會更不容易混淆:
來自
mysqli::prepare
文檔:bind_param
文檔。即: