让mysqli_query执行时出现问题[重复]
Posted
技术标签:
【中文标题】让mysqli_query执行时出现问题[重复]【英文标题】:Having a problem getting mysqli_query to execute [duplicate] 【发布时间】:2011-01-19 06:42:47 【问题描述】:问题来了:我今天开始交换以使用 mysqli。没什么大不了的,只需要更改一些语句。一切都很好,没有错误......除了我根本无法让它执行任何查询。我已经两次和三次检查了我的语法。我什至开始创建它应该返回错误的情况(试图让它插入到不存在的表或超过列限制或不匹配类型的值)并且......什么都没有。它不返回错误,也不写入。如果参数一不是 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 类型。
想法?这让我发疯。
【问题讨论】:
您是否在 php 配置文件中启用了 mysqli 模块。我认为默认情况下它是禁用的。你自己编译过PHP吗?你的配置是什么? mysqli_query() 是否返回一些东西? 不,它不会为特定语句返回任何内容。这只是一个插入。就 phpinfo() 而言,mysqli 已启用。我正在运行 Zend 社区版的最新版本。 PHP 5.3、MYSQL 5.0.5 【参考方案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.';
【讨论】:
非常感谢!似乎是一个流氓语法错误。我终于通过大量的单引号搜索来运行它。 你应该在你的开发服务器上设置 display_startup_errors=1 或者留意错误日志。在您遇到问题的脚本部分中提供一些“有保证的”视觉反馈通常也是一个好主意。 对我来说,在教程中他们为 id 设置了''
而不是 NULL
。以上是关于让mysqli_query执行时出现问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章
MAMP - mysqli_query(): (HY000/6): 删除 .... 时出错