Maison  >  Article  >  base de données  >  Exécuter des instructions SQL dans PDO

Exécuter des instructions SQL dans PDO

黄舟
黄舟original
2017-02-25 10:33:231663parcourir

Méthode exec()

La méthode exec() renvoie le nombre de lignes affectées après exécution. La syntaxe est la suivante :

int PDO::exec(string statement)

Parameter est l'instruction SQL à exécuter. Cette méthode renvoie le nombre de lignes affectées lors de l'exécution de la requête et est généralement utilisée dans les instructions INSERT, DELETE et UPDATE.

Par exemple :

$dbms='mysql';//数据库类型
$dbName='admin';//使用的数据库
$user='root';//数据库连接用户名
$pwd='password';//数据库连接密码
$host='localhost';//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$query="insert into user(username,password) values('admin','123456')";//需要执行的sql语句
$res=$pdo->exec($query);//执行添加语句并返回受影响行数
echo "数据添加成功,受影响行数为: ".$res;
}catch(Exception $e){
die("Error!:".$e->getMessage().&#39;<br>&#39;);
}

Le résultat en cours d'exécution est :

数据添加成功,受影响行数为:
 1

méthode query()

La méthode query() est utilisée pour renvoyer l'ensemble de résultats après l'exécution de la requête. La syntaxe est la suivante :

<.>
PDOStatement
 PDO::query(string statement)

Déclaration des paramètres est l'instruction SQL à exécuter. Il renvoie un objet PDOStatement

Par exemple :

$dbms=&#39;mysql&#39;;
$dbName=&#39;admin&#39;;
$user=&#39;root&#39;;
$pwd=&#39;905407339&#39;;
$host=&#39;localhost&#39;;
$dsn="$dbms:host=$host;port=3306;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;);
}

Le résultat en cours d'exécution est :

Si vous voulez regarder la requête spécifique En conséquence, la sortie de la boucle peut être complétée via l'instruction foreach
PDOStatement
 Object ( [queryString] => select * from user )


Par exemple :

Le résultat en cours d'exécution est :
foreach($res as $val){
echo $val[&#39;username&#39;]."----".$val[&#39;password&#39;].&#39;<br>&#39;;
}

Remarque : si vous souhaitez afficher les détails de foreach, veuillez vérifier l'utilisation : http://www.php.cn/
107lab----e10adc3949ba59abbe56e057f20f883e
admin----123456

query() et exec()

query可以实现所有exec的功能

Par exemple :

$dbms=&#39;mysql&#39;;//数据库类型
$dbName=&#39;admin&#39;;//使用的数据库
$user=&#39;root&#39;;//数据库连接用户名
$pwd=&#39;905407339&#39;;//数据库连接密码
$host=&#39;localhost&#39;;//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$query="insert into user(username,password) values(&#39;admin&#39;,&#39;123456&#39;)";//需要执行的sql语句
$res=$pdo->query($query);//执行添加语句并返回受影响行数
echo "数据添加成功,受影响行数为: ".$res->rowCount();
}catch(Exception $e){
die("Error!:".$e->getMessage().&#39;<br>&#39;);
}

运行结果为:

数据添加成功,受影响行数为: 1

注:

1、query和exec都可以执行所有的sql语句,只是返回值不同而已。

2、query可以实现所有exec的功能。

3、当把select语句应用到 exec 时,总是返回 0

预处理语句----prepare()语句和execute()语句

预处理语句包括prepare()和execute()两种方法。首先,通过prepare()方法做查询准备工作,然后通过execute()方法执行查询,并且还可以通过bindParam()方法来绑定参数给execute()方法,语法如下:

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

例如:

在PDO中通过预处理语句prepare()和execute()执行SQL查询语句,并且应用while()语句和fetch()方法完成数据的循环输出

$dbms=&#39;mysql&#39;;//数据库类型
$dbName=&#39;admin&#39;;//使用的数据库
$user=&#39;root&#39;;//数据库连接用户名
$pwd=&#39;905407339&#39;;//数据库连接密码
$host=&#39;localhost&#39;;//数据库主机名
$dsn="$dbms:host=$host;port=3306;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;);
}

运行结果为:

1
 107lab e10adc3949ba59abbe56e057f20f883e
4 admin 123456
5 admin 123456

关于PDO中获取结果集的方法正在创作阶段,敬请期待。


 以上就是PDO中执行SQL语句的内容,更多相关内容请关注PHP中文网(www.php.cn)!



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn