Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Wordpress中运行MySQL查询会导致HTML标记消失吗?_Php_Mysql_Html_Wordpress - Fatal编程技术网

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

Php 在Wordpress中运行MySQL查询会导致HTML标记消失吗?,php,mysql,html,wordpress,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-&g

我们在向页面添加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());
加载页面一次将导致一个空白页面

第二次,我们看到
表“testtable”已经存在,这意味着我们的查询正在通过

Google Chrome没有检测到页面上的任何其他错误

是什么导致了这个问题

非常感谢,


Justian Meyer

在所有附加注释之后,我建议添加附加查询

显示类似“测试表”的表格


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

问题在于,您的查询返回0,在语句中被解释为false:

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

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

你应该做的是:

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

编辑:顺便说一句,还请注意不要像使用wpdb类那样使用
mysql\u error()
。要获取最后一个错误,可以使用
$wpdb->print_error()

您希望得到什么样的响应?第一次创建表,第二次说它已经存在,这是错误的。@RRStoyanov:请阅读完整的问题。这与第二次创建表时收到的错误无关。这是一个测试,以确定我们的查询是否有效。问题是,我们的页面标记无法到达页面查看器第一个than@RRStoyanov:PHP没有抛出任何错误。错误报告应显示所有错误,以及是否可以看到脚本是否因某个错误而终止。例如,在我的一个项目中,我将错误报告设置为false,同时记录错误。当错误发生时,我会说白色屏幕而不是其他,但当我检查错误日志时。。。我知道有错误。如果您100%确认您的脚本没有错误和/或您没有抑制错误显示,则“确定…”。。。我现在假设的一切都是错的,仍然没有解决这个问题。它与创建表无关。提供的代码只是一个示例。我提到产生的错误是为了表明我们的查询在上一次页面加载中成功。为什么不提供比以前更多的代码呢?从你的付出来看,没有错误。你说没有错误,没有错误,但实际上你的代码是正确的。我可能会继续向你们提出建议和想法,你们也可以继续否决这些答案和投票。不酷,一点也不…我已经强调了我想在上面的原始问题中解决的问题。我试图解决的错误与MySQL查询或它产生的错误无关,但它切断了我的其余代码。这个问题可能是WordPress特有的,可能涉及全局$wpdb变量如何处理数据库。@Justian Well。。。我最初的所有建议都是关于php错误处理的。我会告诉你在这种情况下我会怎么做。我
echo'here'在我认为可能存在错误的每个函数之后。当我找到这个函数时,我会在里面做同样的事情,直到我找到它并修复它。还有,就像我说的。。。有了更多的代码,它也会变得更容易。提供更多的代码实际上没有任何附加值。我现在可以告诉你,
echo'here'查询后将无法正确运行,因为这是我上面提到的问题(请参阅原始问题中的粗体文本)。我们似乎没有取得任何进展。谢谢你的帮助,但我会等待其他受访者帮助我解决这个问题。@Justian Meyer看到第一行:你的查询结果是0,所以:
0或die()
,这与
false或die()
相同,所以脚本就死了。由于没有错误,
mysql\u error()
为空。结果:脚本在返回0的成功查询上成功终止,并显示一条空错误消息。