我目前在MySQL上使用这种类型的SQL在一个查询中插入多行值:
INSERT INTO `tbl` (`key1`,`key2`) VALUES ('r1v1','r1v2'),('r2v1','r2v2'),...
Run Code Online (Sandbox Code Playgroud)
在PDO上的读数中,使用预处理语句应该比静态查询具有更好的安全性.
因此,我想知道是否可以使用预准备语句生成"通过使用一个查询插入多行值".
如果是,我可以知道如何实施它?
我的Web应用程序目前已执行简单的查询:简单的CRUD操作,计数,...
几个月前,有人建议我为此编写一个简单的PDO包装器(以避免每次执行查询时都编写try/catch,prepare(),execute()等).显示了这个示例方法(我做了一些更改,所以我可以在我自己的项目中使用它):
public function execute() {
$args = func_get_args();
$query = array_shift($args);
$result = false;
try {
$res = $this->pdo->prepare($query);
$result = $res->execute($args);
} catch (PDOException $e) { echo $e->getMessage(); }
return $result;
}
Run Code Online (Sandbox Code Playgroud)
因为我需要执行更多操作(执行查询,检索1条记录,检索多条记录,计算结果),我为所有这些创建了一个方法:
public function getMultipleRecords() {
$args = func_get_args();
$query = array_shift($args);
$records = array();
try {
$res = $this->pdo->prepare($query);
$res->execute($args);
$records = $res->fetchAll();
} catch (PDOException $e) { echo $e->getMessage(); }
return $records;
}
public function getSingleRecord() {
$args = func_get_args();
$query = array_shift($args);
$record = …Run Code Online (Sandbox Code Playgroud)