jqGrid に一連の製品カテゴリを返す「ajax スクリプト/ハンドラー」があります。SQLは最終的に次のようになります。
$sql = 'SELECT * FROM product_categories ORDER BY :sidx :sord LIMIT :start , :limit';
$sth = $dbh->prepare($sql);
$sth->bindParam(':sidx', $sidx);
$sth->bindParam(':sord', $sord);
$sth->bindParam(':start', $start, PDO::PARAM_INT);
$sth->bindParam(':limit', $limit, PDO::PARAM_INT);
$sth->execute();
PDO には LIMIT に問題があるようで、上記が機能するように (int) として明示的に設定する必要があったため、既に '$start' に問題がありました。私の次の問題は、ORDER BY フィールドが引用されていることです。引用符を停止するにはどうすればよいですか? '$sidx' と '$sord' の値をサニタイズせずに直接渡すこともできますが、これは危険です。現在、上記の SQL は次のように生成されます。
SELECT * FROM product_categories ORDER BY 'product_category' 'asc' LIMIT 0 , 10
実際に次のようにする必要がある場合:
SELECT * FROM product_categories ORDER BY product_category asc LIMIT 0 , 10