【发布时间】:2015-01-22 17:01:47
【问题描述】:
我有以下 INSERT sn-p 可以正常工作:
$sql = "INSERT INTO `rating`(`business_id`, `user_id`, `quality`, `service`, `value`) VALUES (?,?,?,?,?)";
$query = $dbh->prepare($sql);
$query->bindParam(1, $business_id, PDO::PARAM_STR, 255);
$query->bindParam(2, $user_id, PDO::PARAM_STR, 255);
$query->bindParam(3, $quality, PDO::PARAM_STR, 255);
$query->bindParam(4, $service, PDO::PARAM_STR, 255);
$query->bindParam(5, $value, PDO::PARAM_STR, 255);
$query->execute();
但是,如果插入成功,我想更新另一个表。
我以为这样就可以了:
if ($stmt->execute()) {
$sql = "UPDATE users SET prestige = prestige + 5";
$query = $dbh->prepare($sql);
$query->execute();
}
但没有运气,谁能指出我正确的方向?
有效的最终代码:
if ($query->execute()) {
$sql = "UPDATE user SET prestige = prestige + 250
WHERE id = {$user_id}";
$query = $dbh->query($sql);
}
【问题讨论】:
-
if ($query->execute()) {替换$query->execute();应该这样做。不过,您将需要一个WHERE子句。否则,这将更新您的所有行。加上$query = $dbh->query($sql); -
没有参数就不用prepare直接执行
-
@Mihai 是的,你是对的,我现在才发现。 OP 只需要做
$query = $dbh->query($sql); -
@Mihai OP 没有回应,所以也许他们出去给我们请了午餐。如果您愿意给出答案,请成为我的客人;-) 您基本上已经确定了节奏。