在我的插件代码中,我从两个表中提取表id。 id是从一个表中提取的,而不是从另一个表中提取的,我在两个实例中都会出错。当我使用它们时,查询可以在mysql上运行。有什么想法吗?代码低于并输出低于该值。 id从wp_shclass表中提取,但不从wp_shinstructor表中提取。我几天都在盯着这个想法,不知道出了什么问题。
<?php
/**
* @package pjtest
* @version 0.0
*/
/*
Plugin Name: pjtest
Plugin URI: http://tbd
Description: One page version of my code
Author: Me
Version: 0.0
Author URI:www.linkedin.com/in/tbd
*/
function shmain_admin(){
if (!current_user_can('manage_options')) {
wp_die( __('You do not have sufficient permissions to access this page.') );
}
echo "Hello class";
global $wpdb;
$shrow = $wpdb->get_row("select * from wp_shclass ORDER BY classid DESC LIMIT 1", ARRAY_A);
$shclassid = $shrow['classid'];
echo "<br> this is " . $shclassid;
$wpdb->show_errors();
$wpdb->print_error();
echo "<br> Hello instructor";
$shrow = $wpdb->get_row("select * from wp_shinstructor ORDER BY instructorid DESC LIMIT 1", ARRAY_A);
$shinstructorid = $shrow['instructorid'];
echo "<br> this is " . $shinstructorid;
$wpdb->print_error();
}
function shmain_admin_action(){
add_menu_page('sh main', 'main', 'manage_options','shmain', 'shmain_admin');
}
add_action('admin_menu','shmain_admin_action');
以下是
的输出Hello课程 这是8
WordPress数据库错误:[] select * from wp_shclass ORDER BY classid DESC LIMIT 1
Hello讲师 这是
WordPress数据库错误:[] select * from wp_shinstructor ORDER BY instructorid DESC LIMIT 1
答案 0 :(得分:0)
您的讲师查询可能根本不会返回任何结果。试试这个:
$res = $wpdb->query('SELECT * FROM wp_shinstructor ORDER BY instructorid DESC LIMIT 1');
var_dump($res);
$wpdb->query()
函数在MySQL错误时返回false,否则返回受影响的行数(即它找到的记录数)。
此外,如果您尝试获取单个值,$wpdb->get_var()
可能是更好的选项,因为它从单个记录返回一个字符串,如下所示:
$shclassid = $wpdb->get_var("SELECT classid FROM wp_shclass ORDER BY classid DESC LIMIT 1");
除此之外,您的代码看起来应该可以正常工作。我相信问题在于你的疑问。
答案 1 :(得分:0)
删除并重新创建教师表终于为我工作了。我不需要更改代码。在创建导致返回查询中断的表时,我必须更改MySQL中的一些默认设置。我不知道哪个设置但问题就是这个问题。