【发布时间】:2011-07-05 05:38:36
【问题描述】:
考虑以下问题:
$success = false;
$err_msg = '';
$sql = 'UPDATE task SET title = ? WHERE task_id = ?';
$conn = connect('w'); // create database connection: r= read, w= write
$stmt = $conn->stmt_init(); // initialize a prepared statement
$stmt->prepare($sql);
$stmt->bind_param('si', $_POST['title'], $_POST['id']);
$stmt->execute();
如果我想检查插入或删除是否成功,我可以轻松检查受影响的行,如下所示:
if ($stmt->affected_rows > 0) {
$success = true;
} else {
$err_msg = $stmt->error;
}
如果$stmt->affected_rows等于-1,说明$stmt->execute()执行正确但没有插入记录或者没有成功删除记录。
但是,更新呢?处理更新的正确方法是什么?
我这样做的方法是检查返回值:
$isRecordUpdated = $stmt->execute();
if (!$isRecordUpdated) {
// execute failed, therefore NO record updated!
} else {
//execute success, record updated!
}
你们的做法对吗?
【问题讨论】: