我们在向页面添加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
答案 0 :(得分:3)
问题是您的查询返回0,在您的语句中将其解释为false:
$wpdb->query($add_query) or die(mysql_error());
该函数返回一个整数 对应于行数 影响/选择。如果有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
查询,如果表存在则跳过它。