php-pdo-build

wlzqhblo  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(242)

在一个项目中,我有以下mysql查询:

INSERT INTO my_table (status) VALUES ('')

其中“status”是tinyint(1)类型。该项目部署在几个不同的服务器上,具有不同的php版本和不同的mysql版本。现在-第一次-我们有一个问题,在一个新的服务器上,上面的查询将导致一个错误

Incorrect integer value: '' for column 'status' at row 1

将查询更改为

INSERT INTO my_table (status) VALUES ('0')

解决问题。然而,遍历整个项目并在任何地方更改这种查询都是一件痛苦的事情。查询是由pdo用

$stmt = $db->prepare("INSERT INTO my_table (status) VALUES (:status)");
$stmt->execute( array( ':status' => false ) );

还是新风格

$stmt->execute( array( ':status' => '0' ) );

有没有什么方法可以告诉pdo在传入false时的行为不同,或者我们可以为db设置任何参数,以便在获取int输入时以不同的方式处理空字符串?任何想法都很好:-)
另外-知道哪个版本的mysql(或pdo?)是第一个可能给我们带来这个问题的版本,这将是非常有趣的?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题