查询自定义表和获取结果时遇到问题。
从Wordpress 3.9开始,我不能再运行mysql\\u query(),必须使用$wpdb->query();
因此,请记住:
旧代码:
<?php
if (!empty($_GET[\'msg\'])) {
global $wpdb;
$vuser_id = $_GET[\'id\'];
$sql = "SELECT * FROM wp_quiz WHERE quiz_id=\'$vuser_id\'";
$query = mysql_query($sql);
$result = mysql_fetch_assoc($query);
$total = $result[\'total_count\'];
以我认为合适的方式进行更新:
<?php
if (!empty($_GET[\'msg\'])) {
global $wpdb;
$vuser_id = $_GET[\'id\'];
$sql = "SELECT * FROM wp_quiz WHERE quiz_id=\'$vuser_id\'";
$query = $wpdb->query($sql);
$result = mysql_fetch_assoc($query);
$total = $result[\'total_count\'];
var\\u倾销$结果给我
NULL
现在我得到一个错误:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, integer given in on line 16
我试过使用
$wpbd->get_row($sql);
$wpdb->get_results($sql);
全部返回空值。
如果我exit( $sql );
我可以看到查询正在正确运行SELECT * FROM wp_quiz WHERE quiz_id=\'5925\'
如果我直接将其运行到phpmyadmin中,它会给出正确的结果。
我不确定我做错了什么。
最合适的回答,由SO网友:Brandon Shutter 整理而成
<?php
if (!empty($_GET[\'msg\'])) {
global $wpdb;
$user_id = (int) $_GET[\'id\'];
$sql = $wpdb->prepare("SELECT * FROM wp_quiz WHERE quiz_id=\'%d\'", $user_id);
$result = $wpdb->get_row($sql, ARRAY_A);
var_dump($user_id);
var_dump($result);
$total = $result[\'total_count\'];
在我把问题贴出来后,我终于弄明白了。