【发布时间】:2011-11-12 14:31:52
【问题描述】:
这个问题已经在各个地方提出了几次,但我还没有找到一个明确而明确的答案。大多数解决方案都涉及到人们说要禁用 php.ini 文件上的 Magic Quotes(我这样做了)或修改核心 WP 文件。
无论如何,问题是这样的:为什么每次我使用 $wpdb->insert 或 $wpdb->update 时都会在任何单引号之前添加一个斜杠。比如:
我吃过草莓变成我吃过草莓
这是我使用的示例代码:
$id = $_POST['id'];
$title = $_POST['title'];
$message = $_POST['message'];
$wpdb->update('table_name', array('id'=>$id, 'title'=>$title, 'message'=>$message), array('id'=>$id))
同样的问题在这里:Wordpress Database Output - Remove SQL Injection Escapes 但除了“禁用魔术引号”之外从未解决过
【问题讨论】:
-
你确定你禁用了魔术引号吗?你检查过
phpinfo() -
是的,这是 phpinfo 的摘录 --> magic_quotes_gpc Off Off magic_quotes_runtime Off Off magic_quotes_sybase Off Off
-
update()调用中的那些额外/缺失的引号是拼写错误还是实际上在您的代码中? -
@phil 正在添加额外的引号,这里没有错别字。看一下草莓的例子,看看它做了什么。这与 wpdb->insert 和 wpdb->update 实际上在前面放一个斜杠有关,但我不知道如何禁用它
-
@fewpeople 也许你误解了。您问题中的最后一行代码是一堆放错位置的单引号。那是它实际上的样子吗?另外,您在哪里看到添加的斜线(即,在 echo'd 标记、phpMyAdmin、MySQL 控制台等中)?