嗨,所以我有一个插入语句,但是需要创建一个单独的更新函数,它使用数组键和数组值,这与插入函数非常相似,但更新.
我有这个插入
$sql = "INSERT INTO $tablename (".implode(",", array_keys($DATA).")" . " DATA ('".implode("','",array_values($DATA))."')"; connect()->query($sql);
这是我到目前为止的更新,但我坚持使用它,
query($sql); } ?>
因此,我想帮助更新功能.
所以我的UPDATE语法出错了
这是我正在努力的部分,我可以给出进一步的解释,但我必须使用错误的语法来更新数据库,因为我在索引页面上单击编辑它调用函数只是语法不正确.
还有它的php到mySQL
PHP updatee fucntion的索引页面
{ $values = array(); $idValues = array($idColumn => $id); foreach($_POST as $key => $value) { if(!empty($value) && ($value != "Submit")) { $values[$key] = $value; } } $result = update($idValues, $values, $tableName); }
编辑:错误我正在编辑从下面没有成功
if(isset($_POST['Submit'])) { if($result>0) { echo 'Edit has been successful. Return to index page'; } else { echo 'Edit has not been successful.'; } }
我的代码
function updateAll(array $id, array $values, $tablename) { $sIDColumn = key($id); $sIDValue = current($id); $arrayValues = $values; array_walk($values, function(&$value, $key){ $value = "{$key} = '{$value}'"; }); $sUpdate = implode(", ", array_values($values)); $sql = "UPDATE {$tablename} SET {$sUpdate} WHERE {$sIDColumn} = '{$sIDValue}'"; connect()->query($sql); }
我的目标:将要编辑的行的唯一标识符的输入作为1的数组,然后将值加上表示主键的列的名称,包含由列名称索引的值的数组以及字符串表示使用array_keys和array_vaules的表名,如插入但要更新
你不能以与INSERT相同的方式更新.它应该是这样的:
$valueSets = array(); foreach($values as $key => $value) { $valueSets[] = $key . " = '" . $value . "'"; } $conditionSets = array(); foreach($id as $key => $value) { $conditionSets[] = $key . " = '" . $value . "'"; } $sql = "UPDATE $tablename SET ". join(",",$valueSets) . " WHERE " . join(" AND ", $conditionSets);
请参阅http://dev.mysql.com/doc/refman/5.7/en/update.html