// $connは接続情報 $sqlStr = "SELECT test_table.id id FROM test_table tt WHERE tt.note LIKE :test"; // prepare $stmt = $conn->prepare($sqlStr); // ※バインド $stmt->bindValue(':test', '%test%', PDO::PARAM_STR); if ($stmt->execute()) { echo $stmt->rowCount(); }
【test_table】の登録情報
id | note
1 | test1
2 | test2
3 | テスト1
4 | テスト2
上記の状態で実行した場合、echoの結果は「2」と表示されます。
「※バインド」の箇所を
$stmt->bindValue(':test', '%テスト%', PDO::PARAM_STR);
と記載した場合、「0」が表示されます。
想定では「2」が表示されるはずなのですが、どのような理由で想定結果と異なるのでしょうか。
補足:
phpmyadminでは「test_table」は「utf_general_ci」が設定されています。
上記のコードを記載したファイルは「utf-8」で保存しています。
回答1件
あなたの回答
tips
プレビュー