首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP: mysqli_query和die()

PHP: mysqli_query和die()
EN

Stack Overflow用户
提问于 2013-09-22 04:43:40
回答 5查看 1.1K关注 0票数 0

代码:

我正在测试下面的简单代码以将数据插入到我的数据库中:

代码语言:javascript
复制
mysqli_query($con,"INSERT INTO Persons (Age) VALUES (35) WHERE FirstName='John'") or die("Error");

在我的db中,我没有FirstName=John (它是测试的一部分)的行。

我期待看到的:

因为我的数据库中没有FirstName=John所在的行,所以我希望die()向我发送错误消息。

问题:

Die()不会向我发送错误消息。事实上,我注意到die()只在无法连接到db时才向我发送错误消息。

我的想法:

也许这就是die()的工作方式..。但是,当查询由于没有连接的原因而没有执行时,如何获得通知呢?

EN

回答 5

Stack Overflow用户

发布于 2013-09-22 04:49:12

这很正常。只有当查询失败时,mysqli_query才会返回FALSE,即出现SQL级别.受0影响的行查询不被视为失败(就像SELECT查询的空结果不是失败一样)。在这些情况下,mysqli_query将返回TRUE。

您要做的是检查$con->affected_rows的值,以获得受上次查询影响的行数,如果这等于0,则死掉。

票数 2
EN

Stack Overflow用户

发布于 2013-09-22 04:53:29

您的查询是有效的查询,因此mysqli_query返回true,因此死亡将不会被调用。

票数 2
EN

Stack Overflow用户

发布于 2013-09-22 04:47:37

正如手册中所述,"mysqli_query()在失败时返回FALSE。对于成功的SELECT, SHOW, DESCRIBEEXPLAIN查询,mysqli_query()将返回一个mysqli_result object。对于其他成功的查询,mysqli_query()将返回TRUE."

因此,如果没有FirstName=John所在的行,则不会出现故障。

可以使用mysqli_affected_rows返回插入的行数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18940403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档