1

私はこれを持っています:

$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'user', 'pass');

$max = 10;
$min = 0;
$q = $_GET['q'];

$result = $pdo->prepare("SELECT * FROM fruits WHERE name LIKE ? LIMIT ?, ?");
$result->execute(array('%'.$q.'%', $min, $max));

ただし、LIMIT を LIMIT 0、10 に置き換えて配列から $min と $max を削除すると機能しますが、機能しません (何も返されません)。私は何を間違っていますか?0 の代わりに '0' を使用してみましたが、どちらも機能しません...

4

2 に答える 2

1

私の推測では、数字は文字列としてバインドされています。マニュアルから:

実行中の SQL ステートメントにバインドされたパラメーターと同じ数の要素を持つ値の配列。すべての値は PDO::PARAM_STR として扱われます。

したがってbindValue、実行ショートカットの代わりに使用する必要があります。

于 2013-05-11T15:38:03.033 に答える