web-dev-qa-db-ja.com

カスタムデータベーステーブルからすべてのレコードを削除する、または空にする方法は?

これを行うための簡単で信頼できる方法を見つけることができないようです - おそらく?

// delete row ##
global $wpdb;
$delete = $wpdb->query( 
    $wpdb->prepare( 
         "DELETE * FROM `wp_table_name`"
    )
);

// return ##
$return = __('Table Emptied.');
if ( $wpdb->last_error ) {
    $return = $wpdb->last_error;
}

しかし、これは私に古典を与えます:

SQL構文にエラーがあります。 1行目でnear '* FROM wp_table_name'を使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

5
Q Studio

ありがとう@s_ha_dum - 切り捨てはうまく機能します。

// delete row ##
global $wpdb;
$delete = $wpdb->query("TRUNCATE TABLE `wp_table_name`");
5
Q Studio

Q Studioの例を次のように変更します。global $wpdb; $table = $wpdb->prefix . 'table_name'; $delete = $wpdb->query("TRUNCATE TABLE $table");

7
Bobz

2年遅れていますが、多分これは将来誰かに役立つでしょう:)

MySQLテーブルから行を削除するための正しい構文は次のとおりです。

DELETE FROM `wp_table_name`
WHERE 1 = 1;
2
dale3h

これは遅く、答えは受け入れられました。しかし、あなたのDELETE SQL文が正しくないと言う人は誰もいませんでした。これを試して:

DELETE FROM `wp_table_name`

しかし、これはまだうまくいかないかもしれません。 MariaDB/MySQLの設定を変更してそのような削除を保護する必要がある場合があります。これにより、誤ってデータセット全体を誤って削除しないようにすることができます。それを機能させるには、あなたがする必要があります

DELETE FROM `wp_table_name` WHERE `some_column` = 'some_value'

乾杯

0
Greeso