【質問内容】
PHPの関数の中でSQLを使用してデータを取得する際に、
変数「rank」に入っている整数値を参照し、「昇順」にデータを取り出したいのですがエラーが出てうまくいきません。
初心者で大変申し訳ありませんが、何卒よろしくお願い致します。
【備考】
・「ORDER BY rank ASC」 ⇒「ORDER BY rank」としたところ順不同ではありますがデータは取得出来ました。
(ORDER BY rank ASCとするとエラーが出てしまいデータを取得することが出来ません)
・データベースは「MariaDB」を使用しています。
【エラー】
エラー:SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AND ( w.obj_key like ?)' at line 12
PHP
1public function get_waitobj($search_key){ 2 $sql = <<<EOS 3SELECT 4 w.rank as rank, 5 w.obj_key as obj_key, 6 w.dotdata as dotdata 7 8FROM 9 waitobj w 10 11ORDER BY rank ASC 12 13EOS; 14 if($search_key != ""){ 15 $sql .= " AND ( w.obj_key like :obj_key) "; 16 } 17 18 try { 19 $stmh = $this->pdo->prepare($sql); 20 if($search_key != ""){ 21 $search_key = '%' . $search_key . '%'; 22 $stmh->bindValue(':obj_key', $search_key, PDO::PARAM_STR ); 23 } 24 $stmh->execute(); 25 26 // 検索結果を多次元配列で受け取る 27 $i=0; 28 $data = []; 29 while ($row = $stmh->fetch(PDO::FETCH_ASSOC)){ 30 foreach( $row as $key => $value){ 31 $data[$i][$key] = $value; 32 } 33 $i++; 34 } 35 } catch (PDOException $Exception) { 36 print "エラー:" . $Exception->getMessage(); 37 } 38 return $data; 39 }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/24 14:45
退会済みユーザー
2016/12/24 14:48 編集
2016/12/24 14:52
退会済みユーザー
2016/12/24 14:54
2016/12/24 14:56 編集
退会済みユーザー
2016/12/24 15:05
2016/12/24 15:17
退会済みユーザー
2016/12/24 15:20
2016/12/24 15:23
2016/12/24 15:54