在PDO中更新多行 - 1列更改

时间:2013-09-22 17:33:22

标签: php mysql sql pdo

我正在尝试在PDO中更新多行。我的表脚本包含 id,样式链接列,如下所示:

id  style       link

1   Normalize   http://cdnjs.cloudflare.com/ajax/libs/normalize/2.1.0/normalize.css
2   Bootstap    http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap.css

我需要为Normalize和Bootstrap保存两个不同的链接,但是当我使用这种结构时,解释器返回错误。我怎样才能做到这一点?我想要改变第一个链接,或者第二个或两者一起或分别改变。

我的sql:

$connect = new Database();
$connect->query("UPDATE scripts SET link :normalize WHERE style = 'Normalize' AND  SET link :bootstrap WHERE style = 'Bootstrap'");
$connect->bind(':normalize', $_POST['normalize']);
$connect->bind(':bootstrap', $_POST['bootstrap']);
$connect->execute();

2 个答案:

答案 0 :(得分:1)

试试这个:

UPDATE scripts SET link = CASE
WHEN style= 'Normalize' THEN :normalize
WHEN style= 'Bootstrap' THEN :bootstrap
ELSE link
END;

答案 1 :(得分:0)

我不认为你尝试做的事情是可能的。如果要使用多个条件更新行,则需要多个查询。