フレームワークが自動的に引用するときと、quote
という変数が混同されていると、混乱します。たとえば、私が知る限り、余分なパラメータを使用しない限り、where
節では引用しません。Zend db - SQLインジェクションを避けるためにいつ引用する必要がありますか?
基本的なCRUD操作で手動でquote
を入力する必要がある場合に参照するガイド/チートシートはありますか?
ありがとうございます。
フレームワークが自動的に引用するときと、quote
という変数が混同されていると、混乱します。たとえば、私が知る限り、余分なパラメータを使用しない限り、where
節では引用しません。Zend db - SQLインジェクションを避けるためにいつ引用する必要がありますか?
基本的なCRUD操作で手動でquote
を入力する必要がある場合に参照するガイド/チートシートはありますか?
ありがとうございます。
を、基本的な「親指のルールは、」あります次のようになります。
"SELECT * from TABLE WHERE value=$value"
を最初に引用する必要があります。$select->where('value = ?', $value');
、またはarray('value' => $value)
などの値の配列の場合、フレームワークは値を引用します。はリトル単純化しすぎ、良い
クエリ文字列を自分で作成することは絶対に避けてください。常にZend_Dbを使ってください。つまり、文字列を自分で構築することにより、あなたのwhere句(など)を指定しないでください:
$where = 'id = ' . $_REQUEST['id'] . ' and thing = ' . $_REQUEST['thing'];
$select->where($where);
代わりにこれを実行します。私にとって
$select
->where('id = ?', $_REQUEST['id'])
->where('thing = ?', $_REQUEST['thing']);
、それがお役に立てば幸いです。 1)任意のユーザ入力 2)SQLコードを含む可能性のあるもの –
+1:私にとって、ワイルドカードは常に「order by」句です。これはユーザの入力からくることがあります。おそらく、あなたはこの側面に対処するための答えを増やすこともできます。 –