ai didi

php - 理解 php 死于 mysql_error

转载 作者:行者123 更新时间:2023-11-29 04:23:42 24 4
gpt4 key购买 nike

我在一个帖子上运行了 4 个查询。我注意到,如果第一个查询没有工作要做,则并非所有查询都有效。

这是我的问题

mysql_query("UPDATE invoice SET company='$company' WHERE company='$oldcompanyname'") or die(mysql_error());

mysql_query("UPDATE bill SET customer='$company' WHERE customer='$oldcompanyname'") or die(mysql_error());

mysql_query("UPDATE project SET customer='$company' WHERE customer='$oldcompanyname'") or die(mysql_error());

mysql_query("INSERT INTO activity_log (item, date) VALUES ('Customer Editted', NOW()) ") or die(mysql_error());

举个例子,第一个运行正常。但是第二个没有工作要做,因为该字段中的数据不存在。第三个和第四个应该运行,但它们没有运行。

我一直习惯于在查询后附加“or die(mysql_error());”但我现在认为这不是最好的选择。但是,即使中间的那个没有工作要做,剩下的查询不应该运行吗?

如果所有 4 个都有工作要做,那么它工作正常。

最佳答案

@HamZa DzCyber​​DeV 是对的,如果您的第一个查询失败,die() 调用将停止执行脚本的其余部分,就像 exit() 一样.在仅当另一个查询完成时才需要运行查询的情况下,最好删除 die 语句并使用 if/else。

$result = mysql_query("UPDATE invoice SET company='$company' WHERE company='$oldcompanyname'");
if ($result !== false) {
// do something here or execute the next query
}

此外,不要在新代码中使用 mysql_* 函数 Why shouldn't I use mysql_* functions in PHP? .它们不再维护并正式弃用 https://wiki.php.net/rfc/mysql_deprecation .了解准备好的语句 https://en.wikipedia.org/wiki/Prepared_statement相反,并使用 PDO http://php.net/pdo或 MySQLi http://php.net/mysqli .

关于php - 理解 php 死于 mysql_error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16408942/

24 4 0
文章推荐: java - 在 Servlet 的 JSP 页面中显示 UTF-8 文本
文章推荐: iOS - 仅将 UIView 的一部分保存为 PNG
文章推荐: java - 对 Spring Boot 应用程序使用 AJAX 请求时在 Chrome 中出现 CORS 错误
文章推荐: ios - 从 NSMutableArray 检索后 NSURL 不起作用
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com