亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 61
粉絲 0
評論 0
訪問量 73759
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
PDO預(yù)處理連接數(shù)據(jù)庫,添加操作,更新操作
Pengsir
原創(chuàng)
2181人瀏覽過

PDO連接數(shù)據(jù)庫:

實例

<?php
/醫(yī)院
 * PDO連接數(shù)據(jù)庫
 */
//1.配置參數(shù)
/*
 * 數(shù)據(jù)源:DSN
 * 基本格式:數(shù)據(jù)庫的類型:屬性=值...
 * mysql:host=127.0.0.1;dbname=php;charset=utf-8;port=3306
 */
$pdo=new PDO('mysql:dbname=php','root','root');

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

PDO預(yù)處理添加操作:

實例

<?php
header("Content-type: text/html; charset=utf-8");
/醫(yī)院
 * PDO預(yù)處理添加操作
 * PDO的預(yù)處理使用的是PDOStatement對象
 * $pdo->prepare()創(chuàng)建stmt對象
 * sql語句中的占位符全部采用:命名占位符,不用?
 */
//1.連接數(shù)據(jù)庫
require 'pdo_connect.php';

//2.sql語句 INSERT user SET name =:name,email=:email,password=sha1(:password)
$sql="INSERT `user` SET `user_name`=:user_name,`email`=:email,`password`=sha1(:password)";

//3.創(chuàng)建PDO預(yù)處理對象stmt
$stmt=$pdo->prepare($sql);

//4.要插入到數(shù)據(jù)庫里的數(shù)據(jù) data數(shù)組中的參數(shù)對應(yīng)$sql命名占位符
$data=['user_name'=>'張飛','email'=>'zf@qq.com','password'=>'333'];

/*
 * 4.1綁定變量到預(yù)處理對象:SQL語句對象
 * $stmt->bindParam(參數(shù),變量,類型)
 */
//$stmt->bindParam(':name',$data['user_name'],PDO::PARAM_STR);
//$stmt->bindParam(':email',$data['email'],PDO::PARAM_STR);
//$stmt->bindParam(':password',$data['password'],PDO::PARAM_STR);
//5.執(zhí)行新增操作
if($stmt->execute($data))
{
    //成功會返回受影響的記錄數(shù):新增的記錄數(shù)量
    echo '<h3>成功添加了'.$stmt->rowCount().'條記錄</h3>';
}else{
    echo '<h3>添加失敗</h3>';
    print_r($stmt->errorInfo());
    die();
}

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

PDO預(yù)處理更新操作:

實例

<?php
header("Content-type: text/html; charset=utf-8");
/醫(yī)院
 * PDO預(yù)處理更新操作
 * PDO的預(yù)處理使用的是PDOStatement對象
 * $pdo->prepare()創(chuàng)建stmt對象
 * sql語句中的占位符全部采用:命名占位符,不用?
 */
//1.連接數(shù)據(jù)庫
require 'pdo_connect.php';

//2.sql語句 UPDATE user SET name =:name,email=:email,password=sha1(:password)
$sql="UPDATE `user` SET `user_name`=:user_name,`email`=:email,`password`=sha1(:password) WHERE `user_id`=:user_id";

//3.創(chuàng)建PDO預(yù)處理對象stmt
$stmt=$pdo->prepare($sql);

//4.要更新的數(shù)據(jù)
$data=['user_name'=>'孔明','email'=>'km@qq.com','password'=>'333','user_id'=>1];

/*
 * 4.1綁定變量到預(yù)處理對象:SQL語句對象
 * $stmt->bindParam(參數(shù),變量,類型)
 */
//$stmt->bindParam(':name',$data['user_name'],PDO::PARAM_STR);
//$stmt->bindParam(':email',$data['email'],PDO::PARAM_STR);
//$stmt->bindParam(':password',$data['password'],PDO::PARAM_STR);
//5.執(zhí)行操作
if($stmt->execute($data))
{
    //成功會返回受影響的記錄數(shù)
    echo '<h3>更新了'.$stmt->rowCount().'條記錄</h3>';
}else{
    echo '<h3>更新失敗</h3>';
    print_r($stmt->errorInfo());
    die();
}

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

總結(jié):

      在生成網(wǎng)頁時,許多PHP腳本通常都會執(zhí)行除參數(shù)之外,其他部分完全相同的查詢語句,針對這種重復(fù)執(zhí)行一個查詢,每次迭代使用不同的參數(shù)情況,PDO提供了一種名為預(yù)處理語句(prepared statement)的機制。它可以將整個SQL命令向數(shù)據(jù)庫服務(wù)器發(fā)送一次,以后只有參數(shù)發(fā)生變化,數(shù)據(jù)庫服務(wù)器只需對命令的結(jié)構(gòu)做一次分析就夠了,即編譯一次,可以多次執(zhí)行。會在服務(wù)器上緩存查詢的語句和執(zhí)行過程,而只在服務(wù)器和客戶端之間傳輸有變化的列值,以此來消除這些額外的開銷。這不僅大大減少了需要傳輸?shù)臄?shù)據(jù)量,還提高了命令的處理效率??梢杂行Х乐筍QL注入,在執(zhí)行單個查詢時快于直接使用query()或exec()的方法,速度快且安全

       PDO對預(yù)處理語句的支持需要使用PDOStatement類對象,但該類的對象并不是通過NEW關(guān)鍵字實例化出來的,而是通過執(zhí)行PDO對象的prepare()方法,在數(shù)據(jù)庫服務(wù)器中準備好一個預(yù)處理的SQL語句后直接返回的。如果通過之前執(zhí)行PDO對象的query()方法返回的PDOStatement類對象,只代表的是一個結(jié)果集對象。而如果通過執(zhí)行PDO對象中的prepare()方法產(chǎn)生的PDOStatement類對象,則為一個查詢對象,能定義和執(zhí)行參數(shù)化的SQL命令

運行效果圖:



PDO預(yù)處理操作數(shù)據(jù)庫.png

批改狀態(tài):合格

老師批語:
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
作者最新博文
關(guān)于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學習者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學習!
    全站2000+教程免費學