mysql_query("START TRANSACTION")- 超过锁定等待超时;尝试在 Codeigniter Mysql 中重新启动事务

Posted

技术标签:

【中文标题】mysql_query("START TRANSACTION")- 超过锁定等待超时;尝试在 Codeigniter Mysql 中重新启动事务【英文标题】:mysql_query("START TRANSACTION")- Lock wait timeout exceeded; try restarting transaction in Codeigniter Mysql 【发布时间】:2019-12-28 11:37:18 【问题描述】:

我在我的代码中使用了mysql_query("START TRANSACTION");。会不会导致这个错误?

超过锁定等待超时;尝试在更新查询时在 codeigniter mysql 中重新启动事务。

我尝试在 phpmyadmin 上将 innodb_lock_wait_timeout 更改为 100,现在是 50 但它给出了 np previlage 错误并且该值保持为 50。 有没有办法解决我的代码中的问题。 我不知道我在代码上做错了什么

有没有办法在codeigniter中使用mysql_query("START TRANSACTION")

【问题讨论】:

mysql_query 在 PHP v5.5.0 中被弃用,并在 PHP v7.0.0 中被移除——它不应该被使用。 【参考方案1】:

事务在 CI 中按以下方式管理:

$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
$this->db->trans_complete();

可以参考this官方文档链接。

【讨论】:

我认为使用核心 php mysql_query("START TRANSACTION");与使用活动记录类相同 @roopesh,当框架为您提供方法时,为什么要使用原生 PHP 函数。我不明白。对于你的问题:有没有办法在codeigniter中使用mysql_query("START TRANSACTION"),答案已经给出。

以上是关于mysql_query("START TRANSACTION")- 超过锁定等待超时;尝试在 Codeigniter Mysql 中重新启动事务的主要内容,如果未能解决你的问题,请参考以下文章

mysql_query()执行之后没有结果,数据库中为空

在单个窗体中更新多行

mysql_query 相当于 mongoDB

PHP中的mysql_query()函数的返回值是啥?

显示日期为ISO 8601

“mysql_query() 或 die()” 是不是保持打开的 mysql 连接?