gpt4 book ai didi

php - InnoDB 插入无提示地失败,当表是 MyISAM 时工作正常

转载 作者:行者123 更新时间:2023-11-29 14:49:26 25 4
gpt4 key购买 nike

我在 MySQL 5.0.77 中有一个 InnoDB 表,如下所示:

CREATE TABLE `products_vendors` (
`vendor_id` int(10) unsigned NOT NULL,
`product_id` int(10) unsigned NOT NULL,
`original_quantity` smallint(6) unsigned NOT NULL,
`quantity` smallint(5) unsigned NOT NULL,
`price` decimal(19,8) NOT NULL,
`created` int(10) unsigned NOT NULL,
`valid_until` int(10) unsigned NOT NULL,
PRIMARY KEY (`vendor_id`,`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我正在使用 PHP 和 PDO 来执行插入。执行代码时,插入会默默失败。但是,如果我将表从 InnoDB 更改为 MyISAM,一切都会正常。如果我通过 PHPMyAdmin 运行 InnoDB 插入,它就可以工作。

我将问题归结为这段代码(我的数据库凭据是正确的,因为 MyISAM 工作正常):

$insert_sql = "insert into products_vendors (";
$insert_sql.= "`vendor_id`,";
$insert_sql.= "`product_id`,";
$insert_sql.= "`original_quantity`,";
$insert_sql.= "`quantity`,";
$insert_sql.= "`price`,";
$insert_sql.= "`created`,";
$insert_sql.= "`valid_until` ";
$insert_sql.= ") values (";
$insert_sql.= "'1', '2', '3', '4', '5', '6', '7');";

$db = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASSWORD, array(PDO::ATTR_PERSISTENT, true));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$st = $db->prepare($insert_sql);
$st->execute();

是什么原因导致此代码在 MyISAM 中工作正常,但在 InnoDB 中却默默失败?

非常感谢您的指导。

最佳答案

2 个想法:

  • 您忘记提交事务。
  • 您的持久连接处于未确定状态

关于php - InnoDB 插入无提示地失败,当表是 MyISAM 时工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114556/

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