在Wordpress中运行MySQL查询导致HTML标记消失?

时间:2011-06-01 21:10:09

标签: php mysql html wordpress

我们在向页面添加MySQL查询时遇到问题。似乎无论何时在页面顶部运行某些内容,其余的标记和php函数都不会显示/不会运行。

以下是导致此问题的示例查询:

global $wpdb;

$add_query = "CREATE TABLE thetesttable
        (
           id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
           product VARCHAR(50)
        )";

$wpdb->query($add_query) or die(mysql_error());

加载页面一次会产生空白页。

第二次,我们看到Table 'thetesttable' already exists,这意味着我们的查询正在通过。

网页上没有其他错误或谷歌浏览器检测到任何其他错误。

可能导致此问题的原因是什么?

非常感谢,

Justian Meyer

2 个答案:

答案 0 :(得分:3)

问题是您的查询返回0,在您的语句中将其解释为false:

$wpdb->query($add_query) or die(mysql_error());

来自wpdb class reference

  

该函数返回一个整数   对应于行数   影响/选择。如果有MySQL   错误,该函数将返回FALSE。   (注意:因为0和FALSE都可以   退回,确保你使用   正确的比较运算符:相等   == vs. sameity ===)。

你应该做的是:

$result = $wpdb->query($add_query);
if ($result === false)
{
  die('Could not run query');
}

编辑:顺便说一下,还要注意不要像使用wpdb类时那样使用mysql_error()。要获取上一个错误,您可以使用$wpdb->print_error();

答案 1 :(得分:-1)

在所有其他评论之后,我建议添加其他查询

SHOW TABLES LIKE 'thetesttable';

如果没有上述结果,请运行CREATE TABLE查询,如果表存在则跳过它。