[解決済み] Wordpressのwpdb->deleteの問題
2022-02-26 02:28:07
質問
プログラムによってデータベースからレコードを削除しようとしています。このようにハードコードすると、データベースからレコードが削除されます。
$wpdb->delete( $table_name, array( 'user_id' => 1, 'timeMin' => 10), array('%d', '%d') );
ところが、それを変数を使ってダイナミックにやろうとすると、うまくいかないのです。変数をキャストして
int
を使用して、正しい型であることを確認します。
$id = (int) wp_get_current_user()->ID;
$time = (int) $_POST['umjp_time'];
$wpdb->delete( $table_name, array( 'user_id' => $id, 'timeMin' => $time), array('%d','%d'));
変数を使ったダイナミックコードがうまくいかない理由とその解決方法を教えてください。
解決方法は?
というのが、私のお勧めする方法です。
function vendor_module_remove_dealer($data)
{
global $wpdb;
$sql = 'DELETE FROM `'. $wpdb->prefix .'my_table` WHERE `primary_id` = %d;';
try {
$wpdb->query($wpdb->prepare($sql, array($data['primary-id'])));
return true;
} catch (Exception $e) {
return 'Error! '. $wpdb->last_error;
}
}
これでSQLインジェクションを防ぎ、安全にレコードを削除することができます。もし失敗したらエラーメッセージが返されます :)
関連
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み] SAJAXは死んだか?何を置き換えるべきか?
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】未定義の関数mysql_query()をLoginで呼び出す【重複
-
[解決済み] SSLエラー SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。
-
[解決済み] PHP 配列をキーではなく値で削除する
-
[解決済み] PHPでリクエストタイプを検出する(GET, POST, PUT, DELETE)
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み] WordPressのデータベースから最後に挿入された行のIDを取得する方法は?
最新
-
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 未定義関数の呼び出し
-
[解決済み】 $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて]
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み] [Solved] Fatal error: 非オブジェクトのメンバ関数fetch_assoc()の呼び出し [重複]。
-
[解決済み】chromeの「net : Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR" は何がおかしいのか?
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。