為更新查詢所準備的語句
在 PHP 中,準備語句對於增強查詢安全性和效能至關重要。準備好的語句允許參數化查詢,其中使用佔位符 (?) 而不是直接變數插入。
UPDATE 查詢範例
考慮以下更新資料的mysqli 查詢在Applicant 表中:
$db_usag->query("UPDATE Applicant SET phone_number ='$phone_number', street_name='$street_name', city='$city', county='$county', zip_code='$zip_code', day_date='$day_date', month_date='$month_date', year_date='$year_date' WHERE account_id='$account_id'");
要準備此語句,請將所有語句,請將所有語句變數賦值替換為佔位符:
<code class="php">$sql = "UPDATE Applicant SET phone_number=?, street_name=?, city=?, county=?, zip_code=?, day_date=?, month_date=?, year_date=? WHERE account_id=?";</code>
接下來,初始化準備好的語句物件:
<code class="php">$stmt = $db_usag->prepare($sql);</code>
使用bind_param()方法將參數綁定到語句。對應指定參數的資料型態:
<code class="php">// Assuming the date and account_id parameters are integers `d` and the rest are strings `s` $stmt->bind_param('sssssdddd', $phone_number, $street_name, $city, $county, $zip_code, $day_date, $month_date, $year_date, $account_id);</code>
執行準備好的語句:
<code class="php">$stmt->execute();</code>
檢查是否有錯誤:
<code class="php">if ($stmt->error) { echo "FAILURE!!! " . $stmt->error; }</code>
如果執行是成功,檢索受影響的行數:
<code class="php">echo "Updated {$stmt->affected_rows} rows";</code>
最後,關閉statement物件:
<code class="php">$stmt->close();</code>
透過使用prepared statements,可以避免潛在的注入攻擊,並提高效率您的資料庫查詢。
以上是準備好的語句如何增強 PHP UPDATE 查詢的安全性和效能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!