Php 使用PDO时如何正确使用CASE
我看到了这篇文章,它引导我尝试将旧代码更新为PDO。我的问题是,我对这个代码的理解是否正确?我可以改进它,或者有更好的替代方案来完成它吗Php 使用PDO时如何正确使用CASE,php,mysql,pdo,case,Php,Mysql,Pdo,Case,我看到了这篇文章,它引导我尝试将旧代码更新为PDO。我的问题是,我对这个代码的理解是否正确?我可以改进它,或者有更好的替代方案来完成它吗 $qur = $db->prepare("UPDATE CASE site WHEN $acctype != 1 THEN name=:name, url=:url, lang=:lang, state=:state, hs=:hs, cph=:cph WHERE id=:id && usrid=:usrid ELSE
$qur = $db->prepare("UPDATE CASE site
WHEN $acctype != 1 THEN name=:name, url=:url, lang=:lang, state=:state, hs=:hs, cph=:cph WHERE id=:id && usrid=:usrid
ELSE name=:name, url=:url, lang=:lang, state=:state, hs=:hs WHERE id=:id && usrid=:usrid
END");
$qur->bindParam(':name', $sname);
$qur->bindParam(':url', $surl);
$qur->bindParam(':lang', $slang);
$qur->bindParam(':state', $is);
$qur->bindParam(':hs', $hs);
$qur->bindParam(':cph', $cph);
$qur->bindParam(':id', $sid);
$qur->bindParam(':usrid', $userid);
$qur->execute();
提前感谢您的帮助。我甚至不知道您打算如何处理该案例陈述。您犯了多个语法错误和逻辑错误 UPDATE后面应该是要更改的表,而不是大小写表达式 如果使用CASE,那么每个WHEN都应该是一个值,而不是布尔表达式 您将无法在一个CASE表达式中设置更新中的多个列
在case语句中间没有WHERE子句。
我不知道当其他变量作为参数包含时,为什么要在表达式中插入$acctype。$acctype是列的名称还是其他名称我只是猜测,但这可能是一个更好的情况,动态形成更新查询,而不是使用CASE。我们不知道。。。在球场上吗?它起作用了吗?你有错误吗?