gpt4 book ai didi

php - 当 Code Igniter 中没有更新时,如何测试我的 MySQL 更新查询是否成功?

转载 作者:行者123 更新时间:2023-11-29 03:02:51 25 4
gpt4 key购买 nike

我知道这是一个经常被问到的问题,但让我解释一下为什么我需要再问一遍。

大多数答案都建议使用

$this->db->affected_rows()

这在我的情况下不起作用,因为我可能遇到更新数据与数据库中的数据相同的情况,因此即使更新成功它也会返回 0。

我知道我可以编写另一个查询来检查是否是因为数据相同,但这对我来说听起来很愚蠢。

另一种方法是在 code igniter 中使用 Active Record 类,所以该行将类似于:

$error_num = $this->db->update("users", array('firstName' => $newFirstName));
return $error_num;

这是一个更好的解决方案(至少即使由于重复数据而没有更新它也能工作)。但是,我想使用数据库类,即:

$this->db->query('update table set field = somedata where id=1');

对于了解 php + SQL 但不熟悉 code igniter 的编码人员来说,它增加了我的代码的可读性,但这就是为什么我要问是否有人知道如果我以这种方式查询如何获取错误号?

即在 PHP 中使用 mysql_query($query) 时类似于 mysql_errno()。

最佳答案

两者的工作方式相同,唯一不同

如果您使用事件记录类,所有输入变量都会自动转义

如果你想要安全,你最好选择事件记录类

如果您使用正常的查询执行,您必须使用 $this->db->e​​scape_str() 手动转义输入参数

  $id = $this->db->escape_str($id)

您可以检查查询执行状态。

$status =  $this->db->update("users", array('firstName' => $newFirstName));

if($status)
{
//here you can check the number of affected rows if required
echo $this->db->affected_rows();

}else{

//here you can prcess for failure case
log_message('Error', $this->db->_error_message());

}

//return the status to required place
return $status

关于php - 当 Code Igniter 中没有更新时,如何测试我的 MySQL 更新查询是否成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20489799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com