>  기사  >  백엔드 개발  >  PDO에서 SQL 문을 실행하는 세 가지 방법

PDO에서 SQL 문을 실행하는 세 가지 방법

黄舟
黄舟원래의
2017-04-28 17:38:019655검색

PDO에서 SQL 문을 실행하는 세 가지 방법

PDO에서는 SQL 문을 실행하는 세 가지 방법, 즉 exec() 메서드, 쿼리 메서드를 사용할 수 있습니다. , 그리고 준비된 문장 prepare() 와execute() 메소드~

이전 글 "PDO 생성자를 사용하여 데이터베이스 연결 및 DSN 상세 설명"에서 소개해드린 생성자를 사용하여 데이터베이스와 DSN을 연결하는 방법에 대해 자세히 설명하는 이 기사에서는 PDO에서 SQL 문을 실행하는 세 가지 방법을 아래에서 하나씩 소개하겠습니다!

첫 번째 메서드: exec() 메서드

exec() 메서드는 SQL 문을 실행한 후 영향을 받은 행 수를 반환합니다. 구문 형식은 다음과 같습니다.

int PDO::exec(string statement)

매개변수 satatement는 실행될 SQL 문입니다. 이 메서드는 SQL 문 실행 시 영향을 받는 행 수를 반환합니다. 일반적으로 INSERT, DELETE 및 UPDATE 문에서 사용됩니다. . 구체적인 코드로 설명하자면 다음과 같습니다.

<?php
header("Content-Type:text/html; charset=utf-8");    //设置页面的编码格式
$dbms = "mysql";                                  // 数据库的类型
$dbName ="php_cn";                                //使用的数据库名称
$user = "root";                                   //使用的数据库用户名
$pwd = "root";                                    //使用的数据库密码
$host = "localhost";                              //使用的主机名称
$dsn  = "$dbms:host=$host;dbName=$dbName ";
try{                                             //捕获异常
    $pdo = new PDO($dsn,$user,$pwd);             //实例化对象
    $query="insert into user(username,password) values(&#39;php&#39;,&#39;523&#39;)";//需要执行的sql语句
    $res=$pdo->exec($query);//执行添加语句并返回受影响行数
    echo "数据添加成功,受影响行数为: ".$res;
}catch(Exception $e){
    die("Error!:".$e->getMessage().&#39;<br>&#39;);
}
?>

출력 결과는 다음과 같습니다.

PDO에서 SQL 문을 실행하는 세 가지 방법

두 번째 방법: query () 메소드

query() 메소드는 쿼리를 실행한 후 결과 세트를 반환하는 데 사용됩니다. 이 함수의 구문 형식은 다음과 같습니다.

PDOStatement PDO::query(string statement)

satatement는 실행될 SQL 문이며, PODStatement 객체를 반환합니다! 자세한 내용은 아래 샘플 코드를 참조하세요.

<?php
header("Content-Type:text/html; charset=utf-8");    //设置页面的编码格式
$dbms = "mysql";                                  // 数据库的类型
$dbName ="php_cn";                                //使用的数据库名称
$user = "root";                                   //使用的数据库用户名
$pwd = "root";                                    //使用的数据库密码
$host = "localhost";                              //使用的主机名称
$dsn  = "$dbms:host=$host;dbName=$dbName ";
try{
    $pdo=new PDO($dsn,$user,$pwd);
    $query="select * from user";
    $res=$pdo->query($query);
    print_r($res);
}catch(Exception $e){
    die("Error!:".$e->getMessage().&#39;<br>&#39;);
}
?>

출력 결과는 다음과 같습니다.

PDO에서 SQL 문을 실행하는 세 가지 방법

참고:

1. query와 exec 모두 모든 sql 문을 실행할 수 있지만 반환값이 다릅니다.

2. Query는 모든 Exec 기능을 구현할 수 있습니다.

3. select 문을 exec에 적용하면 항상 0이 반환됩니다.

4. 쿼리를 사용하면 foreach 문

세 번째 방법: 준비된 문: prepare() 문을 통해 루프 출력을 완료할 수 있습니다. andexecute() 문

준비된 문에는 prepare()와 Execution()의 두 가지 메서드가 포함됩니다. 먼저 prepare() 메소드를 통해 쿼리를 준비한 후, submit() 메소드를 통해 쿼리를 실행합니다. 또한, binParam() 메소드를 통해 매개변수를 바인딩할 수도 있습니다.

PDOStatement PDO::prepare(string statement[,array driver_options])
bool PDOStatement::execute([array input_parameters])

in PDO에서 SQL 쿼리문은 전처리문인 prepare()와 Execution()을 통해 실행되며, 루프는 데이터를 루프아웃하는 데 사용됩니다. 샘플 코드를 자세히 살펴보겠습니다.

<?php
header("Content-Type:text/html; charset=utf-8");    //设置页面的编码格式
$dbms = "mysql";                                  // 数据库的类型
$dbName ="php_cn";                                //使用的数据库名称
$user = "root";                                   //使用的数据库用户名
$pwd = "root";                                    //使用的数据库密码
$host = "localhost";                              //使用的主机名称
$dsn  = "$dbms:host=$host;dbname=$dbName";
try{
    $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
    $query="select * from user";//需要执行的sql语句
    $res=$pdo->prepare($query);//准备查询语句
    $res->execute();
    while($result=$res->fetch(PDO::FETCH_ASSOC)){
        echo $result[&#39;id&#39;]." ".$result[&#39;username&#39;]." ".$result[&#39;password&#39;].&#39;<br>&#39;;
    }
}catch(Exception $e){
    die("Error!:".$e->getMessage().&#39;<br>&#39;);
}

출력 결과는 다음과 같습니다.

PDO에서 SQL 문을 실행하는 세 가지 방법

PDO에서 SQL을 실행하는 세 가지 방법에 대해 여기서 소개하겠습니다. 친구들이 로컬에서 테스트할 수 있습니까? 다음 글에서는 계속해서 PDO에서 결과셋을 얻는 방법을 소개하겠습니다. 자세한 내용은 "PDO에서 결과셋을 얻는 fetch() 메서드에 대한 자세한 설명"!

위 내용은 PDO에서 SQL 문을 실행하는 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.