好的是有可能更新列而不是行吗?
f.e之类的:
$laninpstmt = $db->prepare ("UPDATE table SET column_name WHERE id = :allids");
$laninpstmt->bindParam(':allids', $_POST['input0']);
$laninpstmt->bindParam(':allids', $_POST['input1']);
$laninpstmt->bindParam(':allids', $_POST['input2']);
$laninpstmt->bindParam(':allids', $_POST['input3']);
$laninpstmt->bindParam(':allids', $_POST['input3']);
如果我解释代码就像: 更新表中一列的所有行(allid)
答案 0 :(得分:2)
在没有where子句的情况下运行查询将更新所有行,如果更新单个字段,则与更新列相同
UPDATE `test` SET `field_5` = 7
将更新表test
并将列field_5
中的所有值设置为7
答案 1 :(得分:0)
您忘了为column_name指定值
UPDATE table SET column_name = 'Some_value here' WHERE id = :allids
我猜你想要这样做
$laninpstmt = $db->prepare ("UPDATE table SET column_name = Concat(:allids1 , :allids2, :allids3, :allids4) WHERE id = :allids");
$laninpstmt->bindParam(':allids', $_POST['input0']);
$laninpstmt->bindParam(':allids1', $_POST['input1']);
$laninpstmt->bindParam(':allids2', $_POST['input2']);
$laninpstmt->bindParam(':allids3', $_POST['input3']);
$laninpstmt->bindParam(':allids4', $_POST['input4']);
答案 2 :(得分:0)
您可以使用IN:
显然,您需要自己进行查询,请参阅https://stackoverflow.com/a/920523/2575355。
$inputs = array($_POST['input0'], $_POST['input1'], $_POST['input2']);
$allids = implode(', ', $inputs)
$laninpstmt = $db->prepare ("UPDATE table SET column_name WHERE id IN ($allids)");