blu*_*123 4 php mysql arrays crud
嗨,所以我有一个插入语句,但是需要创建一个单独的更新函数,它使用数组键和数组值,这与插入函数非常相似,但更新.
我有这个插入
$sql = "INSERT INTO $tablename (".implode(",", array_keys($DATA).")" . " DATA ('".implode("','",array_values($DATA))."')";
connect()->query($sql);
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的更新,但我坚持使用它,
<?php
function updatethis (array $id, array $values, $tablename)
{
$sql = "UPDATE $tablename SET (".implode(",", array_keys($DATA)).")" . " DATA ('".implode("','",array_values($DATA))."')";
dbconnect()->query($sql);
}
?>
Run Code Online (Sandbox Code Playgroud)
因此,我想帮助更新功能.
所以我的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);
}
Run Code Online (Sandbox Code Playgroud)
编辑:错误我正在编辑从下面没有成功
if(isset($_POST['Submit']))
{
if($result>0)
{
echo 'Edit has been successful. Return to index page';
}
else
{
echo 'Edit has not been successful.';
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码
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);
}
Run Code Online (Sandbox Code Playgroud)
我的目标:将要编辑的行的唯一标识符的输入作为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);
Run Code Online (Sandbox Code Playgroud)
请参阅http://dev.mysql.com/doc/refman/5.7/en/update.html
| 归档时间: |
|
| 查看次数: |
10817 次 |
| 最近记录: |