php ```` エラーメッセージ 致命的なエラー:26行目のC:\ develop \ pleiades \ xampp \ htdocs \ YPHPSample \ 11 \ Sample11-6.phpの非オブジェクトのメンバ関数bindParam()を呼び出します。 コールスタック です ### 該当のソースコード ```php ソースコード //前の例題分 表作成 エラーは表示されていません <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>11-1</title> </head> <body> <?php $dbname= "sqlite:pdd.db"; $username= ""; $psword= ""; $db= new PDO($dbname,$username,$psword); $db->exec("DROP TABLE IF EXISTS product"); $db->exec("CREATE TABLE product(id INTEGER PRIMARY KEY,name STRING,price INTEGER)"); $qry=array( "INSERT INTO product (name, price) VALUES('鉛筆', 80)", "INSERT INTO product (name, price) VALUES('消しゴム', 50)", "INSERT INTO product (name, price) VALUES('定規', 200)", "INSERT INTO product (name, price) VALUES('コンパス', 300)", "INSERT INTO product (name, price) VALUES('ボールペン', 100)" ); foreach($qry as $value){ $db->exec($value); }$qry="SELECT * FROM product"; $data= $db->query($qry); ?> <table border="2"> <tr bgcolor="#AAAAAA"> <th>番号</th> <th>商品名</th> <th>単価</th> </tr> <?php while($value = $data->fetch()){ $id = $value["id"]; $name = $value["name"]; $price = $value["price"]; print "<tr><td>{$id}</td><td>{$name}</td><td>{$price}</td></tr>\n"; } $db = null; ?> </table> </body> </html> ``` ```html<!DOCTYPE html>````html //これから下がエラーがでている分 <html>` <head> <meta charset="UTF-8"/> <title>11-6</title> </head> <body> ``` ``` ```php <?php $dbname = "sqlite:pdb.db"; $usrname = ""; $psword = ""; $db = new PDO($dbname, $usrname, $psword); $word = null; if(isset($_POST["word"])) $word = $_POST["word"]; $qry = "SELECT * FROM product WHERE name LIKE:word"; $word = "%" . $word . "%"; $stmt = $db->prepare($qry); $stmt->bindParam(":word", $word); $stmt->execute(); ?> ``` ```html <table border="2"> <tr bgcolor="#AAAAAA"> <th>番号</th> <th>商品名</th> <th>単価</th> </tr> ``` ```php <?php error_reporting(E_ALL); ini_set('display_errors', '1'); while($value = $stmt->fetch()){ $id = $value["id"]; $name = $value["name"]; $price = $value["price"]; print "<tr><td>{$id}</td><td>{$name}</td><td>{$price}</td></tr>\n"; } $db = null; ?> ``` ```html </table> <form action="http://localhost/YPHPSample/11/Sample11-6.php" method="post"> <input type="text" name="word"/> <input type="submit" value="検索"/> </form> </body> </html> ``` ## 試したこと 表示したいもの 番号 商品名 単価 1 鉛筆 80 2 消しゴム 50 3 定規 200 4 コンパス 300 5 ボールペン 100 × 検索 試したこと いろいろ検索しました ここをみろとかいてありましたが何をいっているの内容自体がさっぱりわかりません すみませんが教えてください ### 補足情報(FW/ツールのバージョンなど) win7 XAAMPを使用してローカルで使用 書籍 やさしいphp P395 をみて学習
ソースコードはマークダウンのcode機能を利用してください
了解しました 編集しなおします
ヘルプをみましたがわかりませんでした、次回からの質問を気をつけます すみません
コード部分を選択状態にして<code>ボタンを押す。「ここに言語名を入力」となっている部分を「JavaScript」「html」など対応する言語名に修正
惜しいですね・・。PCであれば質問編集画面の右側にリアルタイムでプレビューが表示されるのでそちらを見ながら変なところはないか調整いただくとより良いです。でもだいぶ見やすくなりました。回答もしやすくなります。
PDOをnewした直後の$db を var_dump($db); とし、 $db->prepare($qry)の直後の$stmtをvar_dump($stmt); とするとどういう出力になりますか?
コード修正しました
あと表示されました object(PDO)[1] boolean false ( ! )
Fatal error: Call to a member function bindParam() on a non-object in C:\develop\pleiades\xampp\htdocs\YPHPSample\ 11\Sample11-6.php on line 27 Call Stack
何回も申し訳ないです
表示修正ありがとうございます。
いろいろ教えてくださりありがとうございます
回答2件
あなたの回答
tips
プレビュー