簡體   English   中英

將mysql查詢變成准備好的語句

[英]Turning mysql query into prepared statement

我正在嘗試將以下查詢轉換為准備好的語句,但到目前為止我還沒有運氣。 我附上了我的嘗試之一。 我的想法是使用它來檢查之后使用mysqli_num_rows返回多少行。

 $sql2=mysqli_query($bd, "SELECT address FROM member WHERE address='".$address."'");

這是我創建預准備語句的嘗試。

$ustmt = $bd->prepare("SELECT username FROM member WHERE username = ?");
$ustmt->bind_param("s", $username);
$sql2 = $ustmt->execute();

這個對嗎? 如果是這樣,該如何檢查返回到$ sql2的行數?

是的,您的准備和執行是正確的。

execute調用返回一個boolean值,如果成功,則返回true ,否則返回false (如果為false ,則將使用錯誤消息設置$stmt->error屬性)。
值得在繼續之前進行檢查,因為如果它為假,將沒有結果。
與准備工作相同,如果$mysqli->prepare(...)調用返回false,則將使用錯誤消息設置$mysqli->error

執行后,可以通過$num_rows屬性(如果是SELECT語句)或$affected_rows屬性(在其他情況下)獲取受影響的行數。

echo $stmt->num_rows;

或者,您可以使用get_result()方法從語句中獲取mysqli_result對象。
mysqli_result對象包含公共字段$num_rows ,因此您可以通過以下方式檢查行數:

$res = $stmt->get_result();
echo $res->num_rows;

對於mysqli_result對象中的其他方法,我建議檢查docs

暫無
暫無

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

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