这篇文章主要介绍“使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题怎么解决”,在日常操作中,相信很多人在使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
无聊做了个www.jiazhuangma.com,技术不过关写不好后台,就想直接读wordpress里的数据。做ajax读后台数据时在网上随便搜了一段代码使用wordpress $wpdb类读mysql数据库,就是这么一随便,搜到了别人的去头去尾的code,开始了我的改错之旅。
主要问题有:
1,non-object
2,json中汉字,/被转码
3,chrome可以正常访问php文件,ie显示http 404,ajax时头部显示404,但是响应正文正确,是我想要的json。
先贴上网上搜到的代码:
<?php
global $wpdb;
$a = $wpdb->get_results(“SELECT ID,post_title FROM wp_posts ″);
echo json_encode($a );
?>
这时会报错,non-object;
网上有人说可以添加require_once(‘wp-blog-header.php');那么恭喜你中奖了,你会发现chrome可以正常访问php文件,ie显示http 404,ajax时头部显示404,但是响应正文正确。
修改为require_once(‘wp-config.php');后正常,
这时得到的json是转码后的需要将echo json_encode($a );
修改为echo str_replace(“\\/”, “/”, json_encode($a,JSON_UNESCAPED_UNICODE ));结果才正确
最终结果:
<?php
require_once(‘wp-config.php');
global $wpdb;
$a = $wpdb->get_results(“SELECT wp_posts.ID,wp_posts.post_title,wp_posts.guid FROM wp_posts inner join wp_term_relationships on wp_term_relationships.object_id=wp_posts.ID where wp_term_relationships.term_taxonomy_id=3 ORDER BY wp_term_relationships.object_id DESC LIMIT 5″);
echo str_replace(“\\/”, “/”, json_encode($a,JSON_UNESCAPED_UNICODE ));
?>
到此,关于“使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://www.jb51.net/article/73107.htm