如何将行数组传递给PDO以插入它们?

Rya*_*yan 5 php mysql pdo

我想使用PDO预处理语句,但我觉得打字非常耗时.如果有一个函数只传递以下关联数组,那将是非常有用的:

array(
"title"=>$title
"userid"=>$userid
"post"=>$body
)
Run Code Online (Sandbox Code Playgroud)

请记住,数组中的键始终与SQL表中的行匹配.重新考虑一切,这应该切断:foo在execute函数中键入并再次键入它们的努力.

我特别谈到INSERT查询.

怎么做?

ajr*_*eal 18

function pdo_insert($table, $arr=array())
{
  if (!is_array($arr) || !count($arr)) return false;

  // your pdo connection
  $dbh  = '...';
  $bind = ':'.implode(',:', array_keys($arr));
  $sql  = 'insert into '.$table.'('.implode(',', array_keys($arr)).') '.
          'values ('.$bind.')';
  $stmt = $dbh->prepare($sql);
  $stmt->execute(array_combine(explode(',',$bind), array_values($arr)));

   if ($stmt->rowCount() > 0)
   {
      return true;
   }

return false;
}

pdo_insert($table, array('title'=>$title, 'userid'=>$user_id, 'post'=>$body));
Run Code Online (Sandbox Code Playgroud)