大変お世話になってます。
PDOでプリペアドステートメントがうまく行っていない様で、
SQL自体を展開もしてみましたが、問題はないように見えるので、何が原因か分かりません。
問題のコード
php
1 //省略 2 $list = ['test1','test2','test3','test4']; 3 $hatena = substr(str_repeat(',?', count($sources)), 1); 4 try{ 5 $sql = "SELECT tweet_msg FROM tweet WHERE tweet_source IN (${hatena})" 6 $this->db->prepare($sql); 7 $this->db->execute($list); 8 //省略
###エラーメッセージ
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 '?,?,?,?)' at line 1
###やってみたこと
SQL文がおかしいのかと思い、var_dump関数で式を展開してみましたが、問題は見当たりませんでした。
結果:string(59) "SELECT profile FROM users WHERE id IN (?,?,?,?)"
IN の ( が消えている?
エラー内容がSyntax errorでsyntax to use near '?,?,?,?)'と書かれてあるので、
INあたりがおかしいという確信はあるのですが、var_dumpの結果では問題が考えらる()もコンマもしっかりついており、
他には皆目見当がつきません。
どなたか何が問題なのかご教授いただければと思います。
宜しくお願いしますm(_)m