sql 更新不改变数据库中的数据
sql update not changing data in DB
我在 PHP 中使用 PDO 做了一个简单的更新查询:
$pdos = connect_db();
$pdos->beginTransaction();
try {
$query = "UPDATE `myo`.`question` SET `intitule` = 'Question azeerrr' WHERE `question`.`id` = 1";
$pdo = $pdos->prepare($query);
$pdo->execute();
return $pdo->rowCount();
catch (Exception $e) { print_r ($e); exit (); }
这似乎不起作用(数据库中的数据未更改),尽管我没有收到任何错误消息,甚至从 rowCount() 收到“1”,这意味着更新成功。
此外,如果我将此查询复制并粘贴到 PHPmyadmin 和 运行 中,它会起作用并且该行已修改,
这可能是关于从我的网站执行更新的权利,而不是与您登录 PHPmyadmin 时相同的行为吗?
编辑:
FIXED : thanks for you help : PDO::commit(); was needed to close my PDO::beginTransaction();
如果您正在使用 PDO 的事务,则必须提交您的更改以将修改应用到您的数据库中。
参见PDO::commit()函数。
即使您使用新值或现有值更新记录,MySql 在这两种情况下总是 returns 1....
当您使用 $pdos->beginTransaction();
开始交易时,我很确定您需要使用 $pdos->commit();
提交它
有关详细信息,请参阅 documentation。
我在 PHP 中使用 PDO 做了一个简单的更新查询:
$pdos = connect_db();
$pdos->beginTransaction();
try {
$query = "UPDATE `myo`.`question` SET `intitule` = 'Question azeerrr' WHERE `question`.`id` = 1";
$pdo = $pdos->prepare($query);
$pdo->execute();
return $pdo->rowCount();
catch (Exception $e) { print_r ($e); exit (); }
这似乎不起作用(数据库中的数据未更改),尽管我没有收到任何错误消息,甚至从 rowCount() 收到“1”,这意味着更新成功。
此外,如果我将此查询复制并粘贴到 PHPmyadmin 和 运行 中,它会起作用并且该行已修改,
这可能是关于从我的网站执行更新的权利,而不是与您登录 PHPmyadmin 时相同的行为吗?
编辑:
FIXED : thanks for you help : PDO::commit(); was needed to close my PDO::beginTransaction();
如果您正在使用 PDO 的事务,则必须提交您的更改以将修改应用到您的数据库中。
参见PDO::commit()函数。
即使您使用新值或现有值更新记录,MySql 在这两种情况下总是 returns 1....
当您使用 $pdos->beginTransaction();
开始交易时,我很确定您需要使用 $pdos->commit();
有关详细信息,请参阅 documentation。