我知道我迟到了。。。但你问题的主要问题是,你在陈述中使用了单引号(\'):
$wpdb->query(
\'DELETE FROM $wpdb->paypal
WHERE id = "\'.$myid.\'"
\'
);
这意味着
$wpdb->paypal
没有产生您期望的结果。首先,假设显示“paypal”表名。但事实并非如此。
如果$myid
值为4
, PHP代码将生成以下SQL语句:
DELETE FROM $wpdb->paypal WHERE id = 4
。。。而不是:
DELETE FROM wp_paypal WHERE id = 4
要解决此问题,您必须:
将单引号更改为双引号。(Read why)在表名称前添加表前缀像这样:
$table_name = $wpdb->prefix . \'paypal\';
$wpdb->query( "DELETE FROM {$table_name} WHERE id = \'{$myid}\'" );
另外,确保
you sanitize 这个
$myid
变量,因为如果我提交值
0 OR 1=1
, 这将生成以下SQL语句:
DELETE FROM wp_paypal WHERE id = 0 OR 1=1
。。。并将删除表中的每一行