初学者です。
本を見ながら学習しておりましたが、わからない部分があり質問させていただきます。
足りない説明、記述等ありましたら追記いたしますのでご指摘ください。
##DBからプリペアードステートメント記述でデータがとれない
(codeというカラムの番号で検索をかけようとしております)
現在MAMPの環境で学習を行っております。
php4.7.9
apache2.4.46
mysql5.7.30
です。
php
1<?php 2$code = $_POST["code"]; 3 4$host = "localhost"; 5$user = "root"; 6$pass = "root"; 7$dbn = "test"; 8 9$mysqli = new mysqli($host, $user, $pass, $dbn); 10$mysqli->set_charset("utf-8"); 11 12$sql = "select * from phpkiso where code = ?"; 13$stmt = $mysqli->prepare($sql); 14$stmt->execute(); 15$stmt->bind_result("s", $code); 16 17 18 while($item = $stmt->fetch()){ 19 echo $item["code"] . "<br>"; 20 echo $item["nickname"] . "<br>"; 21 echo $item["goiken"] . "<br>"; 22 } 23 24
php
1Fatal error: Uncaught Error: Call to undefined method mysqli_stmt::fetch_assoc() in /Applications/MAMP/htdocs/phpkiso/kensaku.php:19 Stack trace: #0 {main} thrown in /Applications/MAMP/htdocs/phpkiso/kensaku.php on line 19
エラーを調べたら、mysqlndドライバがないせいという意見があり
その場合はbind_resultとfetchを使うという記述がありました。
試した結果がこちらです。
php
1Fatal error: Uncaught Error: Cannot pass parameter 1 by reference in /Applications/MAMP/htdocs/phpkiso/kensaku.php:16 Stack trace: #0 {main} thrown in /Applications/MAMP/htdocs/phpkiso/kensaku.php on line 16
そのほかが原因となっておりましたら、申し訳ありません。
PDOを使用したら可能なのかもしれませんが、mysqliの記述のまま成功させる方法はありませんでしょうか。
ご存知の方がいらっしゃったらご、教示いただけましたら幸いです。
回答1件
あなたの回答
tips
プレビュー