为什么MySQL PDO UPDATE查询不更新表中的数据?

时间:2018-04-13 10:11:26

标签: php mysql pdo sql-update

这是关于mysql pdo更新语法的另一个问题。我已经在以前的问题中搜索了不同的资源,例如Stackoverflow,但仍然无法让我的查询工作!需要一些帮助。

  $allowed = array("col1","col2","col3");
  $values = $_POST['id'];

  $sql = "UPDATE mytable SET ".pdoSet($allowed,$values)." WHERE 
  id=?";
  $stmt = $pdo->prepare($sql); 
  $stmt->execute([$values]);

更新#1。

  1. 添加了我的pdoSet()函数;

  2. 很少编辑过的代码片段,特别是在查询中更改了id =:id部分。

    function pdoSet($allowed, &$values) {
     $set = '';
     $values = array();
       foreach ($allowed as $field) {
          $set.="`".str_replace("`","``",$field)."`". "=:$field, ";
       }
    return substr($set, 0, -2); 
    }
    
    $allowed = array("col1","col2","col3");
    $values["id"] = $_POST['id'];
    
    $sql = "UPDATE mytable SET ".pdoSet($allowed,$values)." WHERE id=:id";
    $stmt = $pdo->prepare($sql); 
    $stmt->execute($values);
    

0 个答案:

没有答案