PHP多个PDO查询在一个语句中?

时间:2011-01-30 15:33:10

标签: php pdo

  

可能重复:
  PDO Prepared Inserts multiple rows in single query

嘿所有人。我正在编写一个包含一系列名称的脚本,每个名称都将添加到MySQL数据库中的新行中,同时添加了其他列。我试图用PDO实现的声明类似于以下代码:

$sql = 'INSERT INTO table 
(name, car, gender) 
VALUES 
("Name", "Car", "Gender"),
("Name2", "Car2", "Gender2"),
("Name3", "Car3", "Gender3"),
("Name4", "Car4", "Gender4"),
("Name5", "Car5", "Gender5")';

有没有办法通过PDO声明实现这一目标?我想我可以像下面这样做,但我不认为这是实现这一目标的最有效方法。

$namesarray = array("Name1", "Name2", "Name3", "Name4", "Name5");

foreach($namesarray as $name)
{
  try 
  {
   $conn = parent::connect();
   $st = $conn->prepare($sql);
   $st->bindValue(":name", $this->data['name'], PDO::PARAM_STR);      
   $st->bindValue(":car", $this->data['car'], PDO::PARAM_STR);       
   $st->bindValue(":gender", $this->data['gender'], PDO::PARAM_STR);      
   $st->execute();  
   parent::disconnect($conn);
   return true;
  }
  catch (PDOException $e)
  {
   parent::disconnect($conn);
   die("Query failed: " . $e->getMessage());
  }
}

0 个答案:

没有答案