PDO中執行SQL語句

黄舟
發布: 2017-02-25 10:33:23
原創
1606 人瀏覽過

exec()方法

exec()方法傳回執行後受影響行數,語法如下:

int PDO::exec(string statement)
登入後複製

參數statement是要執行的SQL語句。此方法傳回執行查詢時受影響的行數,通常情況下用於INSERT,DELETE和UPDATE語句中。

例如:

#
$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;);
}
登入後複製

執行結果為:

数据添加成功,受影响行数为:
 1
登入後複製

query()方法

query()方法用於傳回執行查詢後的結果集,語法如下

#
PDOStatement
 PDO::query(string statement)
登入後複製

參數statement 是要執行的SQL語句。它傳回的是一個PDOStatement物件

例如:

#

$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;);
}
登入後複製


運行結果為:

PDOStatement
 Object ( [queryString] => select * from user )
登入後複製

如果要看查詢的具體結果,可以透過foreach語句完成循環輸出

例如:

foreach($res as $val){
echo $val[&#39;username&#39;]."----".$val[&#39;password&#39;].&#39;<br>&#39;;
}
登入後複製
運行結果為:
107lab----e10adc3949ba59abbe56e057f20f883e
admin----123456
登入後複製
說明:如果要查看foreach的詳細用法請查看:http:// www.php.cn/

query()與

exec()

#####
query可以实现所有exec的功能
登入後複製
### #########例如:#######
$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)!



相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!