$wpdb->GET_RESULTS返回空,但值存在

时间:2015-04-28 作者:Dark Hawk

这是我的第一个问题。在Wordpress工作了5年多,我总是通过Google找到正确的方法,但在这种情况下,我甚至不知道该怎么办,我真的堆积了:(所以。。。

我有MySQL表

CREATE TABLE IF NOT EXISTS `statsdata` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date` date NOT NULL,
  `sid` int(11) NOT NULL,
  `pid` int(11) NOT NULL,
  `min` float NOT NULL,
  `max` float NOT NULL,
  `avg` float NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=236 ;
当我尝试使用$wpdb获取数据时,如

SELECT * FROM statsdata WHERE `date` = \'2015-04-28\' AND `sid` = \'2\' LIMIT 1

    $sql_data = "SELECT * FROM " . $data_db_name . " WHERE `date` = \'".$today."\' AND `sid` = \'".$sid."\' LIMIT 1";   
    $data = $wpdb->get_results($sql_data);      
我得到的结果是空的:(…如果我将在phpmyadmin中或直接从控制台进行此查询,它将返回我需要的内容…这里有什么问题?

P、 这是我的数据

INSERT INTO `statsdata` (`id`, `date`, `sid`, `pid`, `min`, `max`, `avg`) VALUES
(1, \'2015-04-27\', 2, 1, 200.401, 230.5, 229.451),
(2, \'2015-04-27\', 3, 1, 223, 235.61, 229.305),
(3, \'2015-04-27\', 1, 1, 232.027, 243.949, 237.988),
(4, \'2015-04-28\', 1, 1, 232.027, 243.949, 237.988),
(5, \'2015-04-28\', 2, 1, 232.027, 243.949, 237.988),
(6, \'2015-04-28\', 3, 1, 238.02, 243.506, 240.763)

1 个回复
SO网友:Rarst

如果不亲自访问您的数据,很难说。要么查询实际上失败了,要么查询不是您在该上下文中所期望的。

您应该通过以下方式启用错误报告$wpdb->show_errors( true ) 在它之前检查$wpdb->last_query 之后保持清醒。

结束

相关推荐

关于$wpdb->Prepare()的问题

$wpdb->prepare()正在添加单引号(“”),如下所示。我正在使用以下代码$sql = $wpdb->prepare(\"SELECT * FROM %s \",$table_name); echo $sql; 我得到如下输出SELECT * FROM \'wp_nametbl\' 但我想得到如下输出SELECT * FROM wp_nametbl