0

PDO LIKE 条件を使用して、データベースから対応する値を取得しようとしています。問題は、データベース内の一部の値が大文字で始まることです。UPPERCASED の列値を使用してデータベースにクエリを実行しようとしています。

このコードを使用する場合:

$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $connection->prepare('SELECT * FROM ingredient WHERE name LIKE ?');
    $query = '%'.$queryEntered.'%';
    $stmt -> execute(array($query));

私は結果を得ることができます。

$query = $queryEntered.'%';
    $stmt -> execute(array($query));

列のデータを大文字でベッドに入れることができないように見えるので、一致することはありません。しばらく探していました。どんな助けでもいいでしょう。

4

1 に答える 1

1

使用している文字セットと照合順序によって異なります。ほとんどの MySQL インストールでは、大文字と小文字を区別しない文字列比較を持つ latin1_swedish_ci がデフォルトです。大文字と小文字を区別する比較を強制することができます。

'SELECT * FROM ingredient WHERE name COLLATE latin1_general_cs LIKE ?'

ここも参照してください: http://dev.mysql.com/doc/refman/5.6/en/case-sensitivity.html

于 2013-04-03T22:04:48.757 に答える