ホームページ >バックエンド開発 >PHPチュートリアル >phpのbind_paramに関する問題、初心者の方はアドバイスをお願いします

phpのbind_paramに関する問題、初心者の方はアドバイスをお願いします

WBOY
WBOYオリジナル
2016-06-13 12:04:031580ブラウズ

phpのbind_paramの問題、初心者がアドバイスを求めています
ここで準備ができたことを学び、次のコードを入力して実行しました

<br />$db = new mysqli("localhost", "xx","xxxxxxx","books");<br />    $insert_str = "insert into customers(name,address,city) values(?,?,?)";<br />    $stmt = $db->prepare($insert_str);<br />    $stmt->bind_param("sss","john","street one","beijing");<br />    $stmt->execute();<br />    echo $stmt->affected_rows;<br />

実行すると、エラーが報告されました
パラメータ2を参照で渡すことができません
そして、インターネット上のコードに従って変更しました
<br />$db = new mysqli("localhost", "xx","xxxxxx","books");<br />    $insert_str = "insert into customers(name,address,city) values(?,?,?)";<br />    $stmt = $db->prepare($insert_str);<br />    $name ="john";<br />    $address = "street one";<br />    $city = "beijing";<br />    $stmt->bind_param("sss",$name,$address,$city);<br />    $stmt->execute();<br />    echo $stmt->affected_rows;<br />

は、データが正常に挿入されたことを示しています。最初のバージョン
の何が問題なのかを聞きたいだけです。 ---解決策-------- -----------
bind_param の 2 番目のパラメータは参照によって渡されます
文字列として直接記述します。これは php 5.3 以降では許可されていません

実際には、
$stmt->bind_param("sss","john", "street one","beijing");
execute(array("john","street one","beijing"));

-----解決策----- ------------ ---マニュアルからの引用


引用mysqli_stmt::bind_param -- mysqli_stmt_bind_param —
変数をパラメータとしてプリペアドステートメントにバインドします
mysqli_stmt_bind_param() にはパラメータを参照で渡す必要があることに注意してください

渡すことはできません文字列として直接記述する場合は参照してください。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。