mysql预编译批量加入_预处理批量添加数据

本文通过示例代码展示了如何使用PHP PDO预编译语句进行批量插入MySQL数据库的操作,详细解释了预处理批量插入的数据格式要求。
摘要由CSDN通过智能技术生成

上一节的添加了一条数据,批量添加只需要foreach循环遍历添加即可

代码如下:<?php

//绑定参数

$stmt->bindParam(1,$name);

$stmt->bindParam(2,$author);

//单条插入

//$name='java基础教程';

//$author='smile4';

//$stmt->execute();

//批量插入

$data=array(

array('php预处理批量添加教程1','smile'),

array('php预处理批量添加教程2','smile'),

array('php预处理批量添加教程3','smile'),

);

foreach ($data as $row){

$name=$row[0];

$author=$row[1];

$stmt->execute();

}

完整代码如下:<?php

/**

* Created by PhpStorm.

* User: Administrator

* Date: 2018/3/5 0005

* Time: 上午 9:23

*/

header("Content-Type:text/html;charset=utf-8");

//mysql:host:localhost;port=3306;dbname=php;charset=utf-8

$dbms='mysql';

$host='localhost';

$port='3306';

$dbname='php';

$charset='utf-8';

//用户名与密码

$user='root';

$pwd='root';

$dsn="$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";

try{

$pdo=new PDO($dsn,$user,$pwd);

//预处理sql语句

$stmt=$pdo->prepare("insert into book(name,author)values(?,?)");

//绑定参数

$stmt->bindParam(1,$name);

$stmt->bindParam(2,$author);

//单条插入

//$name='java基础教程';

//$author='smile4';

//$stmt->execute();

//批量插入

$data=array(

array('php预处理批量添加教程1','smile'),

array('php预处理批量添加教程2','smile'),

array('php预处理批量添加教程3','smile'),

);

foreach ($data as $row){

$name=$row[0];

$author=$row[1];

$stmt->execute();

}

//$sql='select *from book';

//$result=$pdo->query($sql);

//$row=$result->fetchAll(PDO::FETCH_ASSOC);

//echo "

";

//print_r($row);

//echo "

";

}catch (PDOException $exception){

echo $exception->getMessage().'
';

}

执行结果展示:

752b18f711c5e4d8b028c23ed9d46233.png

execute()函数里也可以添加参数,参数类型为数组,数组中的元素个数必须与占位符个数相同

bce39e148e700632aa492884119b5df5.png

全部代码展示:<?php

/**

* Created by PhpStorm.

* User: Administrator

* Date: 2018/3/5 0005

* Time: 上午 9:23

*/

header("Content-Type:text/html;charset=utf-8");

//mysql:host:localhost;port=3306;dbname=php;charset=utf-8

$dbms='mysql';

$host='localhost';

$port='3306';

$dbname='php';

$charset='utf-8';

//用户名与密码

$user='root';

$pwd='root';

$dsn="$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";

try{

$pdo=new PDO($dsn,$user,$pwd);

//预处理sql语句

$stmt=$pdo->prepare("insert into book(name,author)values(?,?)");

//绑定参数

//$stmt->bindParam(1,$name);

//$stmt->bindParam(2,$author);

//单条插入

//$name='java基础教程';

//$author='smile4';

//$stmt->execute();

//批量插入

$data=array(

array('php预处理批量添加教程1','smile'),

array('php预处理批量添加教程2','smile'),

array('php预处理批量添加教程3','smile'),

);

foreach ($data as $row){

//    $name=$row[0];

//    $author=$row[1];

$stmt->execute($row);

}

//$sql='select *from book';

//$result=$pdo->query($sql);

//$row=$result->fetchAll(PDO::FETCH_ASSOC);

//echo "

";

//print_r($row);

//echo "

"

}catch (PDOException $exception){

echo $exception->getMessage().'
';

}

;

注意:分析上面提到的execute()代码可以知道使用“?”占位符传递多条数据时使用的数组时索引数组,

也就是

array(

array('php预处理批量添加教程1','smile'),

array('php预处理批量添加教程2','smile'),

array('php预处理批量添加教程3','smile'),

);类型的数组

如果是使用(:参数名称)的占位符,多条插入时需要使用关联数组,即数组索引是具体的有类型的数据

例如:

array(

array("name"=>'php预处理批量添加教程1',"author"=>'smile'),

array("name"=>'php预处理批量添加教程1',"author"=>'smile'),

array("name"=>'php预处理批量添加教程1',"author"=>'smile')

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值