LIKE 演算子 PDO
解決したいこと
PDO LIKE演算子で検索指定していないintが入ってしまい空の値も表示されてしまう。
下記のようにPDOにてコードを致しましたが、$dataをvar_dumpするとintが混ざります。
なぜこのような影響が出ているのかご教示頂けますと幸いです。
コード一覧
public function searchPDO($username, $POST){
$sql = " SELECT * FROM vocab_idioms_slang WHERE username='".$username."' AND delete_flg =0 AND vocab LIKE ?";
$stmt = $this->dbh->prepare($sql);
$res = $stmt->execute(array('%'.$POST.'%'));
if($res == false){
$this->catchError($stmt->errorInfo());
}
$data =[];
while($result = $stmt->fetch(\PDO::FETCH_ASSOC)){
$data[] = array_push($data,$result);
}
var_dump($data);
return $data;
下記のvar_dumpの奇数のindexを拝見すると、必ずintが含まれております。
LIKEにてvocabというcolumnのみを指定しており、int型も数字も含まれていないのになぜこのような影響が出るのでしょうか。
vocab columnには文字列しか入っておらず、select文が間違っているのでしょうか。
POSTには今回は aという文字列、$usernameにはtotoという文字列が入っているおります。
array(20) { [0]=> array(8) { ["user_id"]=> string(1) "8" ["kinds"]=> string(10) "Vocabulary" ["username"]=> string(4) "toto" ["vocab"]=> string(1) "a" ["translate"]=> string(1) "a" ["example"]=> string(0) "" ["image"]=> string(5) "a.jpg" ["delete_flg"]=> string(1) "0" } [1]=> int(1) [2]=> array(8) { ["user_id"]=> string(1) "9" ["kinds"]=> string(10) "Vocabulary" ["username"]=> string(4) "toto" ["vocab"]=> string(1) "a" ["translate"]=> string(1) "a" ["example"]=> string(0) "" ["image"]=> string(5) "a.jpg" ["delete_flg"]=> string(1) "0" } [3]=> int(3) [4]=> array(8) { ["user_id"]=> string(2) "11" ["kinds"]=> string(10) "Vocabulary" ["username"]=> string(4) "toto" ["vocab"]=> string(1) "a" ["translate"]=> string(1) "a" ["example"]=> string(0) "" ["image"]=> string(5) "a.jpg" ["delete_flg"]=> string(1) "0" } [5]=> int(5) [6]=> array(8) { ["user_id"]=> string(2) "12" ["kinds"]=> string(10) "Vocabulary" ["username"]=> string(4) "toto" ["vocab"]=> string(1) "a" ["translate"]=> string(1) "a" ["example"]=> string(0) "" ["image"]=> string(0) "" ["delete_flg"]=> string(1) "0" } [7]=> int(7) [8]=> array(8) { ["user_id"]=> string(2) "13" ["kinds"]=> string(10) "Vocabulary" ["username"]=> string(4) "toto" ["vocab"]=> string(2) "aa" ["translate"]=> string(1) "a" ["example"]=> string(0) "" ["image"]=> string(0) "" ["delete_flg"]=> string(1) "0" } [9]=> int(9) [10]=> array(8) { ["user_id"]=> string(2) "16" ["kinds"]=> string(10) "Vocabulary" ["username"]=> string(4) "toto" ["vocab"]=> string(1) "a" ["translate"]=> string(3) "あ" ["example"]=> string(0) "" ["image"]=> string(0) "" ["delete_flg"]=> string(1) "0" } [11]=> int(11) [12]=> array(8) { ["user_id"]=> string(2) "17" ["kinds"]=> string(10) "Vocabulary" ["username"]=> string(4) "toto" ["vocab"]=> string(1) "a" ["translate"]=> string(1) "a" ["example"]=> string(0) "" ["image"]=> string(23) "eat-vector-21865168.jpg" ["delete_flg"]=> string(1) "0" } [13]=> int(13) [14]=> array(8) { ["user_id"]=> string(2) "20" ["kinds"]=> string(10) "Vocabulary" ["username"]=> string(4) "toto" ["vocab"]=> string(2) "fa" ["translate"]=> string(2) "fa" ["example"]=> string(0) "" ["image"]=> string(0) "" ["delete_flg"]=> string(1) "0" } [15]=> int(15) [16]=> array(8) { ["user_id"]=> string(2) "25" ["kinds"]=> string(6) "Idioms" ["username"]=> string(4) "toto" ["vocab"]=> string(1) "a" ["translate"]=> string(1) "a" ["example"]=> string(1) "a" ["image"]=> string(0) "" ["delete_flg"]=> string(1) "0" } [17]=> int(17) [18]=> array(8) { ["user_id"]=> string(2) "27" ["kinds"]=> string(10) "Vocabulary" ["username"]=> string(4) "toto" ["vocab"]=> string(2) "fa" ["translate"]=> string(6) "fafafa" ["example"]=> string(0) "" ["image"]=> string(0) "" ["delete_flg"]=> string(1) "0" } [19]=> int(19) }
色々と調べましたが答えに辿り着けず、ご教示頂けますと幸いです。
0