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('php','523')";//需要执行的sql语句 $res=$pdo->exec($query);//执行添加语句并返回受影响行数 echo "数据添加成功,受影响行数为: ".$res; }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); } ?>
출력 결과는 다음과 같습니다.
두 번째 방법: 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().'<br>'); } ?>
출력 결과는 다음과 같습니다.
참고:
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['id']." ".$result['username']." ".$result['password'].'<br>'; } }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); }
출력 결과는 다음과 같습니다.
PDO에서 SQL을 실행하는 세 가지 방법에 대해 여기서 소개하겠습니다. 친구들이 로컬에서 테스트할 수 있습니까? 다음 글에서는 계속해서 PDO에서 결과셋을 얻는 방법을 소개하겠습니다. 자세한 내용은 "PDO에서 결과셋을 얻는 fetch() 메서드에 대한 자세한 설명"!
위 내용은 PDO에서 SQL 문을 실행하는 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!