PHP の Implode だが、各要素を引用符で囲む
2023-10-04 03:44:39
質問
配列があるとします。
$elements = array('foo', 'bar', 'tar', 'dar');
では、このように
DELETE IN
SQLクエリ。
$SQL = "DELETE FROM elements
WHERE id IN ('" . implode(',', $elements) . "')";
問題は、要素配列のidが個別に引用されていないことです。すなわち、クエリーは次のようになります。
$SQL = "DELETE FROM elements
WHERE id IN ('foo,bar,tar,dar');
これを修正するための最も良い、最もエレガントな方法は何でしょうか?
どのように解決するのですか?
引用符を
implode
の呼び出しに引用符を追加します。
implode
)
$SQL = 'DELETE FROM elements
WHERE id IN ("' . implode('", "', $elements) . '")';
これで生成されます。
DELETE FROM elements WHERE id IN ("foo", "bar", "tar", "dar")
SQLインジェクションを防ぐ最良の方法は、要素が適切にエスケープされていることを確認することです。
簡単にできることで、うまくいくはずです(しかし、私はテストしていません)。
array_map
または
array_walk
のように、すべてのパラメータをエスケープしてください。
$elements = array();
$elements = array_map( 'mysql_real_escape_string', $elements);
関連
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み】Laravel 5.2 Storage::makeDirectory($dir) でディレクトリが作成されない。
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み】phpMyAdmin: シークレットパスフレーズ?
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み】Netbeans 7.4 for PHPで「スーパーグローバルな$_POST配列に直接アクセスしないでください」という警告が発生する。
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み】Doctrine2: 参照テーブルで余分なカラムを持つ多対多を処理する最良の方法
-
[解決済み] php implode (101)を引用符で囲む
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given [重複] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given.
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: バインドされた変数の数が102行目のトークンの数と一致しない [終了]
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み】PHPのクラスが見つからないが、インクルードされている
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み】書き込みコンテキストでメソッドの戻り値を使用することができない
-
[解決済み】phpのシンタックスエラー、予期しないT_IFエラーを修正する方法は?[クローズド]。
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法