一尘不染

在获取mysqli_query执行时遇到问题

mysql

这个问题已经在这里有了答案

mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误? (1个答案)

4个月前关闭。

问题出在这里:我今天开始使用mysqli进行交换。没什么大不了的,只需要更改一些声明即可。一切正常,没有错误…除了我根本无法执行任何查询。我已经检查过两次和三次。我什至开始创建一种情况,它应该返回一个错误(试图将其插入到不存在的表中或值超过列限制或与类型不匹配的表的INSERT中),并且……什么都没有。它不会返回错误,也不会写入。如果参数一不是mysqli类型,它将抱怨。

以下是相关代码:

$con = mysqli_connect("localhost", "root", "","test");

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "INSERT INTO files VALUES (NULL, 5, 'hello')";
mysqli_query($con, $query);

没事了。它运行没有问题,但从未写入记录。我什至可以将$ query更改为“
hdjhkfhhjfkd”,并且它没有问题。mysqli_query()暂时没有执行。我唯一能使它做出反应的时间是,如果我将$
con更改为其他任何内容,那么它将抱怨它需要mysqli类型。

有什么想法吗?这使我疯狂。


阅读 675

收藏
2020-05-17

共1个答案

一尘不染

您是否检查过mysqli_query()的返回值?如果发生错误,则返回FALSE。在这种情况下,mysqli_error()会为您提供有关该错误的更多信息。

<?php
$con = mysqli_connect("localhost", "root", "", "test");
if (mysqli_connect_errno()) {
  printf("Connect failed: %s\n", mysqli_connect_error());
  exit();
}

$query = "INSERT INTO files VALUES (NULL, 5, 'hello')";
echo "<pre>Debug: $query</pre>\m";
$result = mysqli_query($con, $query);
if ( false===$result ) {
  printf("error: %s\n", mysqli_error($con));
}
else {
  echo 'done.';
}
2020-05-17