###前提・実現したいこと
PHPでデータを保存し更新するシステムを作っています。
テーブルに保存されたデータを変更するページを作成中にエラーメッセージが発生しました。
###発生している問題・エラーメッセージ
Fatal error: Call to undefined method PDOStatement::bind_param() in C:\pleiades\xampp\htdocs\hoge\hoge.php on line 35
###該当のソースコード
<?php define('DB_DATABASE', 'hoge'); define('DB_USERNAME', 'hoge'); define('DB_PASSWORD', 'hoge'); define('PDO_DSN', 'mysql:dbhost=hoge;dbname=' . DB_DATABASE); //接続 try{ $db = new PDO(PDO_DSN, DB_USERNAME,DB_PASSWORD); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e){ echo $e->getMessage(); exit; } if(empty($_POST)) { echo "<a href='update1.php'>list4.php</a>←こちらのページからどうぞ"; exit(); }else{ if (!isset($_POST["no"]) || !is_numeric($_POST["no"]) ){ echo "IDエラー"; exit(); }else{ //プリペアドステートメント $stmt = $db->prepare("SELECT * FROM hogehoge WHERE no=?"); if ($stmt) { //プレースホルダへ実際の値を設定する $stmt->bind_param("i",$no); $no = $_POST["no"]; //クエリ実行 $stmt->execute(); //結果変数のバインド $stmt->bind_result($no,$name,$password); // 値の取得 $stmt->fetch(); //ステートメント切断 $stmt->close(); }else{ echo $mysqli->errno . $mysqli->error; } } } // データベース切断 $mysqli->close(); ?> <!DOCTYPE html> <html> <head> <title>変更画面</title> </head> <body> <h1>変更画面</h1> <p>名前を変更して下さい。</p> <form action="update3.php" method="post"> <input type="hidden" name="no" value="<?=$no?>"> <input type="text" name="name" value="<?=htmlspecialchars($name, ENT_QUOTES, 'UTF-8')?>"> <input type="text" name="password" value="<?=htmlspecialchars($password, ENT_QUOTES, 'UTF-8')?>"> <input type="submit" value="変更する"> </form>
###試したこと
エラーメッセージの翻訳やマニュアルは読みました。35行目の記述ミスや$stmtの定義ミスなどを疑ったのですが、特に問題なさそうでした。
###補足情報(言語/FW/ツール等のバージョンなど)
http://noumenon-th.net/programming/2016/01/20/mysql-3/
こちらのサイトを参考にさせていただきました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/03 07:25