###前提・実現したいこと
PHPでfetchallで"goods"よりデータを持ってきたいのですが“non-object”なるエラーが出てしまいます
###該当のソースコード
<index.php> <?php require 'common.php'; $pdo = connect(); if($_GET['type'] == null){ $st = $pdo->query("SELECT * FROM goods"); }else{ $type = $_GET['type']; $st = $pdo->query("SELECT * FROM goods WHERE type=$type"); $st->closeCursor(); } $goods = $st->fetchAll(); require 'n_index.php'; ?>
<common.php> <?php // session_start(); function connect() { return new PDO("mysql:dbname=shop", "root" , "pass"); } ?>
<n_selected.php><追記> <?php //種類を選択して行を取得し送る //common.phpでデータべースを指定 require 'common.php'; $pdo = connect(); //n_index.phpで送られた値を取得 $prepare = $_GET['type']; //送られた値とgoodsにあるtypeと同じものを指定し行をSELECTする $st = $pdo->query("SELECT * FROM goods WHERE type=$prepare"); //指定したカラムの全ての値を取得する $goods = $st->fetchAll(PDO::FETCH_COLUMN, 0); //n_index.phpに戻る require 'n_index.php'; ?>
non-objectはどの変数に対して出ていますか?エラーメッセージ全体も含めてそちらも明記してください。
errormessage「Fatal error: Call to a member function fetchAll() on a non-object in C:\xampp\htdocs\php\shop\Main3\index.php on line 10 」 $goods = $st->fetchAll();の記述部分になります
prepareはこちらを参考にしてください。http://php.net/manual/ja/pdo.prepared-statements.php