gpt4 book ai didi

php - 为什么此查询不产生 mysql_error() 结果?

转载 作者:行者123 更新时间:2023-11-29 06:18:35 25 4
gpt4 key购买 nike

我正在运行一些代码并且没有收到任何错误,但是该行也没有被删除......所以我有点困惑。所以我检查了代码并发现我的查询有问题,但同时它没有为我的 mysql_error() 测试产生真实的结果。

我正在使用下面的代码..

        try {
// Start transaction
beginTransaction($this->db_connection);
} catch (Exception $e) {
throw new Exception($e->getMessage());
}

try {

// Delete main entry
$this->removeMainEntry($lid);

// Delete list columns
$this->removeListColumns($lid);

// Commit changes to database
commitChanges($this->db_connection);

} catch (Exception $e) {

try {
// Rollback changes
rollback($this->db_connection, $e->getMessage());
} catch (Exception $re) {
throw new Exception($re->getMessage());
}

throw new Exception($e->getMessage());

}

这就是问题所在,它没有进入 mysql_error() 部分..

protected function removeMainEntry($lid) {

$lid = (int) $lid;

// Remove from database
$query = "DELET FROM lists WHERE id=" . $lid . " LIMIT 1";
$sql = mysql_query($query, $this->db_connection);

if (mysql_error()) {
$etext = 'Problem removing list main entry from database.';
$log_error = $etext . ' MySQL Error: ' . mysql_error() . '. Query: ' . $query;
log_site_error($log_error);
throw new Exception($etext);
}

}

这是我使用的那些函数的代码..

if (!function_exists('beginTransaction')) {

function beginTransaction($dblink) {

$query = "BEGIN";
mysql_query($query, $dblink);

if (mysql_error()) {
$etext = 'Problem adding new list data to database.';
$log_error = $etext . ' MySQL Error: ' . mysql_error() . '. Query: ' . $query;
log_site_error($log_error);
throw new Exception($etext);
}

}

}

if (!function_exists('commitChanges')) {

function commitChanges($dblink) {

$query = "COMMIT";
mysql_query($query, $dblink);

if (mysql_error()) {
$etext = 'Problem adding new list data to database.';
$log_error = $etext . ' MySQL Error: ' . mysql_error() . '. Query: ' . $query;
log_site_error($log_error);
throw new Exception($etext);
}

}

}

if (!function_exists('rollback')) {

function rollback($dblink, $error = '') {

$query = "ROLLBACK";
mysql_query($query, $dblink);

if (mysql_error()) {
$etext = $error . ' Additionally there was a problem rolling back the changes in the database. Please check the logs.';
$log_error = $etext . ' MySQL Error: ' . mysql_error() . '. Query: ' . $query;
log_site_error($log_error);
throw new Exception($etext);
}

}

}

最佳答案

如果删除 0 行,则可能仍会被视为成功。使用mysql_affected_rows以确保您确实做了任何事情。

关于php - 为什么此查询不产生 mysql_error() 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5044486/

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