今天就跟大家聊聊有關怎么在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的詳細用法請查看:https://www.jb51.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中利用PDO執行SQL語句有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。