いつもお世話になっております。
##前提
ユーザー情報を管理するusersテーブルと、インスタグラムのアカウントについて管理するinstagramテーブルを保持しており、2つのテーブルは共通したinsta_name
というカラムを持っています。
配列形式でpostされたユーザー情報(中身にはユーザー名が入っています)をループし
、csvファイルに出力するためのユーザー情報をまとめた$user_list
を作成したいと思っています。
##解決したい問題
共通したinsta_name
をもとにテーブルを内部結合し、その上でpostされた配列内のユーザー名をもとにレコードを抽出したいのですが、WHERE句の行で文法エラーが発生してしまいます。
そのため、以下コード内のエラー原因がどこかを教えていただけないでしょうか。
foreach ($csvUser as $user) { $user_list[] = $this->dbh->query("SELECT users.*, instagram.account_url, instagram.insta_follower, FROM users INNER JOIN instagram ON users.insta_name = instagram.insta_name WHERE users.insta_name = '$user'")->fetch(PDO::FETCH_ASSOC); }
##試したこと
WHERE句の検索内容としている$user
の部分を
WHERE users.insta_name = $user //シングルクォーテーションを付けない WHERE users.insta_name = " . $user) //文字結合とする
など試みましたが、改善しませんでした。
よろしくお願いいたします。
##追記
実際のエラー内容を貼っていなかったことに対して、失礼しました。
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'username' in 'where clause'' in /classes/CsvExport.php:55 Stack trace: #0 /classes/CsvExport.php(55): PDO->query('SELECT\n ...') #1 /select_user_control.php(13): CsvExport->export(Array) #2 {main} thrown in /classes/CsvExport.php on line 55
回答2件
あなたの回答
tips
プレビュー