PHP のプリペアドステートメントの実行中に何が問題になっているのかわかりません。あまりポイントがありません。専門家に質問してください。

WBOY
リリース: 2016-06-23 13:25:26
オリジナル
904 人が閲覧しました

$servername = 'servername'; //服务器名称$username = 'username'; //数据库用户名$password = 'password'; //登录密码$dbname = 'mydb';//创建连接$conn = new mysqli($servername, $username, $password, $dbname);//检测连接(PHP 5.2.9和5.3.0版本适用)/* if($conn->connect_error){	die('连接失败:' . $conn->connect_error);} *///检测连接(兼容更早版本)if(mysqli_connect_error()){	die('连接失败:' . mysqli_connect_error());}else{	$sql = "INSERT INTO myguests VALUES(?, ?, ?)";		//为mysqli_stmt_prepare()初始化statement对象	$stmt = mysqli_stmt_init($conn); 	echo $stmt; //不知道为什么$stmt是空的,没有数据		//预处理语句	if(mysqli_stmt_prepare($stmt, $sql)){		//绑定参数		mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);				//设置参数并执行		$firstname = 'Sam';		$lastname = 'Poly';		$email = 'sam@gmail.com';		mysqli_stmt_execute($stmt);				$firstname = 'Mary';		$lastname = 'Moe';		$email = 'mary@gmail.com';		mysqli_stmt_execute($stmt);				$firstname = 'Julie';		$lastname = 'Dooley';		$email = 'julie@gmail.com';		mysqli_stmt_execute($stmt);				echo '插入成功';	}}
ログイン後にコピー

mysqli_stmt_init($conn) が実行後に応答しなかったようで、何も出力されず、その後の mysqli_stmt_prepare($stmt, $sql) が実行できませんでした。実行されず、エラーは報告されませんでした。


ディスカッションに返信 (解決策)

あなたは混乱しています。
$conn = mysqli_connect(....)
mysqli_stmt_init($conn)
これはペアです

$conn = new mysqli(....)
$conn ->stmt_init()
これはペアです はい

モデレータさん、熱心な回答をありがとうございます。あなたがリストした両方の方法がまだ使用可能です。問題は INSERT ステートメントのパラメーター リストにあるためです。 echo mysqli_stmt_init($conn) は結果を出力しないことがわかりました。最近 PHP を学習したばかりなので、コードを入力しました。チュートリアルは本当に詐欺です

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート