为什么PDO::MYSQL_ATTR_FOUND_ROWS不工作?

cotxawn7  于 5个月前  发布在  Mysql
关注(0)|答案(1)|浏览(53)

下面的测试程序在我尝试过的所有平台上都产生了预期的答案“1”,除了一家托管公司的平台,它给出了“0”。有人能想到为什么会这样吗?MySQL版本8.0.26和PHP 8.2.9。

<?php

error_reporting(-1);
ini_set('display_errors', '1');

$db_database = "your_database";
$db_host = 'localhost';
$db_login = "your_login";
$db_password = "your_password";

$dsn = "mysql:dbname=$db_database;host=$db_host";
$table = "found_rows_test";

$options = [PDO::MYSQL_ATTR_FOUND_ROWS => true];

$dbh = new PDO($dsn, $db_login, $db_password, $options);

$sql = "CREATE TABLE IF NOT EXISTS $table (id varchar(10), data int, PRIMARY KEY(id))";
$stmt = $dbh->prepare($sql);
$stmt->execute();

$sql = "INSERT IGNORE INTO $table (id, data) VALUES ('abcd', 1)";
$stmt = $dbh->prepare($sql);
$stmt->execute();

$sql = "UPDATE $table SET data=1 WHERE id='abcd'";
$stmt = $dbh->prepare($sql);
$stmt->execute();

echo $stmt->rowCount();

字符串

kpbwa7wx

kpbwa7wx1#

托管公司说他们已经发现并修复了这个问题,虽然我还没有能够证实这一点,因为修复将出现在下一个版本的PHP将推出在他们的网站上.事实证明,他们运行“修改版本的PHP,使其更安全和优化”.

相关问题