单引号在 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语句中啥时候用单引号啥时候用双引号?如图中的红为啥用双引号?