当前位置:  开发笔记 > 编程语言 > 正文

带有数组的PHP更新语句

如何解决《带有数组的PHP更新语句》经验,为你挑选了1个好方法。

嗨,所以我有一个插入语句,但是需要创建一个单独的更新函数,它使用数组键和数组值,这与插入函数非常相似,但更新.

我有这个插入

$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的表名,如插入但要更新



1> Tᴀʀᴇǫ Mᴀʜᴍᴏᴏ..:

你不能以与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

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有