我的wordpress php代码在一个实例中从数据库中提取信息,而不是在其他情况下。怎么了?

时间:2012-03-18 22:28:09

标签: php wordpress

在我的插件代码中,我从两个表中提取表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

2 个答案:

答案 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中的一些默认设置。我不知道哪个设置但问题就是这个问题。