本文實例講述了php使用PDO執行SQL語句的方法。分享給大家供大家參考,具體如下:
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().'<br>'); }
運行結果為:
數據添加成功,受影響行數為: 1
query()方法
query()方法用于返回執行查詢后的結果集,語法如下
PDOStatement PDO::query(string statement)
參數statement 是要執行的SQL語句。它返回的是一個PDOStatement對象
例如:
$dbms='mysql'; $dbName='admin'; $user='root'; $pwd='905407339'; $host='localhost'; $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().'<br>'); }
運行結果為:
PDOStatement Object ( [queryString] => select * from user )
如果要看查詢的具體結果,可以通過foreach語句完成循環輸出
例如:
foreach($res as $val){ echo $val['username']."----".$val['password'].'<br>'; }
運行結果為:
107lab----e10adc3949ba59abbe56e057f20f883e admin----123456
說明:如果要查看foreach的詳細用法請查看:http://www.gimoo.net/article/68786.htm
query()與exec()
query可以實現所有exec的功能
例如:
$dbms='mysql';//數據庫類型 $dbName='admin';//使用的數據庫 $user='root';//數據庫連接用戶名 $pwd='905407339';//數據庫連接密碼 $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->query($query);//執行添加語句并返回受影響行數 echo "數據添加成功,受影響行數為: ".$res->rowCount(); }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); }
運行結果為:
數據添加成功,受影響行數為: 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='mysql';//數據庫類型 $dbName='admin';//使用的數據庫 $user='root';//數據庫連接用戶名 $pwd='905407339';//數據庫連接密碼 $host='localhost';//數據庫主機名 $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['id']." ".$result['username']." ".$result['password'].'<br>'; } }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); }
運行結果為:
1 107lab e10adc3949ba59abbe56e057f20f883e 4 admin 123456 5 admin 123456
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP基于pdo操作數據庫技巧總結》、《php+Oracle數據庫程序設計技巧總結》、《PHP+MongoDB數據庫操作技巧大全》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。