일괄 추가 데이터 전처리 중
일괄 추가에는 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 "<pre>"; //print_r($row); //echo "</pre>"; }catch (PDOException $exception){ echo $exception->getMessage().'<br>'; }
실행 결과 표시:
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($row); } //$sql='select *from book'; //$result=$pdo->query($sql); //$row=$result->fetchAll(PDO::FETCH_ASSOC); //echo "<pre>"; //print_r($row); //echo "</pre>" }catch (PDOException $exception){ echo $exception->getMessage().'<br>'; } ;
Note: 위에 언급된 실행() 코드를 분석하면 여러 데이터 조각을 전달할 때 사용되는 배열을 알 수 있습니다. "?" 자리 표시자를 사용하여 배열을 색인화합니다.
array (array('php 사전 처리 일괄 추가 튜토리얼 1','smile'),
array('php 사전 처리 일괄 추가 튜토리얼 2' ,'smile'), array('php 전처리 일괄 추가 튜토리얼 3', 'smile'),);
type array
(: 매개변수 이름)의 자리 표시자를 사용하는 경우 연관 배열을 사용해야 합니다. 여러 항목을 삽입할 때, 즉 배열 인덱스는 특정 유형의 데이터입니다
예:
array("name"=>'php 전처리 일괄 추가 튜토리얼 1',"author"=>' smile'),
array("name"=>'php 전처리 처리 일괄 추가 튜토리얼 1',"author"=>'smile'),
array("name"=>' php 전처리 일괄 추가 튜토리얼 1',"author"=>'smile')
);