【发布时间】:2017-03-21 05:14:50
【问题描述】:
我需要更新一个包含 14 个帖子变量的表。当我用 2 个变量做完全相同的事情时,它工作正常,但是当我使用 14 时它不会更新。我已经尝试了代码的各种变体,这是我的最新版本,它不起作用,但也没有给我错误。是不是因为我有很多post变量,当我打印它们时它们都是正确的。
<?php print_r($_POST); ?>
<?php
$v = array();
$v[0] = $_POST['id'];
$v[1] = $_POST['first_name'];
$v[2] = $_POST['last_name'];
$v[3] = $_POST['address1'];
$v[4] = $_POST['address2'];
$v[5] = $_POST['address3'];
$v[6] = $_POST['address4'];
$v[7] = $_POST['no'];
$v[8] = $_POST['type'];
$v[9] = $_POST['reference'];
$v[10] = $_POST['relationship'];
$v[11] = $_POST['occupation'];
$v[12] = $_POST['comments'];
$v[13] = $_POST['source'];
$dbh = dbh_get();
$sql = "UPDATE transfer SET (first_name, last_name, address1, address2, address3, address4, no, type, reference, relationship, occupation, comments, source) VALUES ('.$v[1].','.$v[2].','.$v[3].','.$v[4].','.$v[5].','.$v[6].','.$v[7].','.$v[8].','.$v[9].','.$v[10].','.$v[11].','.$v[12].','.$v[13].') WHERE transfer_id='.$v[0].'";
$stmt = $dbh->prepare($sql);
$stmt->execute($v);
dbh_free($dbh)
?>
最初我没有使用引号而只是使用撇号,并且 id 最后而不是第一个,但也没有工作。像这样:-
$sql = 'UPDATE transfer SET first_name=?, last_name=?, address1=?, etc,..... WHERE id=?';
当它只有两个 post 变量时,这工作正常,但当我放大它时,它就坏了。
【问题讨论】:
标签: php sql postgresql post