单引号在 sql 查询中被转换为 backstik:wordpress

Posted

技术标签:

【中文标题】单引号在 sql 查询中被转换为 backstik:wordpress【英文标题】:single quotes are getting converted into the backstik in sql query: wordpress 【发布时间】:2013-03-14 12:59:29 【问题描述】:

$login_sql="SELECT * FROM tbuser_info WHERE user_name='".$user."' AND 密码='".$pass."' AND is_approve='".$approve."'";

是我的 php 变量定义了一个 sql 查询... 但是当它在 wordpress 中执行时,单引号正在转换为 backstik...

【问题讨论】:

【参考方案1】:

怎么样?

$login_sql = "SELECT * ROM tbuser_info WHERE user_name=\"$user\" AND password=\"$pass\" AND is_approve=\"$approve\"";

【讨论】:

SELECT * ROM tbuser_info WHERE user_name=\'my user\' AND password=\'password\' AND is_approve=\'true\' is output am getting... in worpress @HerrSerker跨度> 看来,你之后有一个重写过程。你有什么不寻常的模块吗? 因为我是 wordpress 新手 :(【参考方案2】:

您已发布查询本身,但未发布实际查询数据库的代码。我怀疑您的问题出在该代码中。但是,我建议这样做:

$login_sql="SELECT * FROM tbuser_info WHERE user_name=%s AND password=%s AND is_approve=%s";
$result = $wpdb->get_results($wpdb->prepare($login_sql,$user,$pass,$approve));

这应该可以解决您的引号问题,因为$wpdb->prepare 会将它们添加为字符串。它还有助于解决 SQL 注入问题。

参考:

http://codex.wordpress.org/Class_Reference/wpdb

【讨论】:

以上是关于单引号在 sql 查询中被转换为 backstik:wordpress的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询的内容中含有单引号,怎么实现查询

sql语句中啥时候用单引号啥时候用双引号?如图中的红为啥用双引号?

sql 查询的结果如何加上单引号。

sql 如何查询单引号

sql查询列进行STUFF()拼接 单引号 逗号_xml path excel

SQL Server查询中特殊字符的处理方法