日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php pdo 参数绑定,PDO绑定参数的其他方法

發布時間:2025/3/12 php 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php pdo 参数绑定,PDO绑定参数的其他方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要:在《PDO中預處理語句占位符的使用?》已經介紹了參數綁定方法bindParam(),冒號‘:’占位符和問號‘?’都可以使用這個方法綁定參數,而且還可以指定綁定參數的類型,再次確保在執行sql中傳入參數的安全性。PDO擴展中,除了bindParam()方法外,還有其它的方法也可以綁定參數。

在《PDO中預處理語句占位符的使用》已經介紹了參數綁定方法bindParam(),冒號‘:’占位符和問號‘?’都可以使用這個方法綁定參數,而且還可以指定綁定參數的類型,再次確保在執行sql中傳入參數的安全性。PDO擴展中,除了bindParam()方法外,還有其它的方法也可以綁定參數。

1、bindValue()方法綁定參數

bindValue()和bindParam()一樣,都屬于PDOStatement對象中的方法。該方法也是把一個值綁定到一個參數。bindValue()同樣有3個參數PDOStatement::bindValue?(?mixed?$parameter?,?mixed?$value?[,?int?$data_type?=?PDO::PARAM_STR?]?)?:?bool

執行成功時返回?TRUE, 或者在失敗時返回?FALSE。parameter

參數標識符。對于使用命名占位符的預處理語句,應是類似?:name?形式的參數名。對于使用問號占位符的預處理語句,應是以1開始索引的參數位置。

value

綁定到參數的值

data_type

使用?PDO::PARAM_*?常量明確地指定參數的類型。

bindValue()方法使用示例<?php

header('content-type:text/html;charset=utf-8');

try{

$pdo=new?PDO('mysql:host=localhost;dbname=test','root','root');

$sql="INSERT?test_pdo(username,password,email)?VALUES(?,?,?)";

$stmt=$pdo->prepare($sql);

$username='testuser111';

$password='123456';

$email='testuser11@qq.com';

$stmt->bindValue(1,$username,PDO::PARAM_STR);

$stmt->bindValue(2,$password,PDO::PARAM_STR);

$stmt->bindValue(3,$email);

$stmt->execute();

//再次綁定參數執行

$username='testuser222';

$password='123456';

$email='testuser22@qq.com';

$stmt->bindValue(1,$username,PDO::PARAM_STR);

$stmt->bindValue(2,$password,PDO::PARAM_STR);

$stmt->bindValue(3,$email);

$stmt->execute();

echo?$stmt->rowCount();

}catch(PDOException?$e){

echo?$e->getMessage();

}

從bindValue()的使用示例來看再對比前文bindParam(),這兩個方法使用方法似乎一樣,既然如此為什么會有兩個方法呢?請看下面的圖:

通過這兩個圖,可以明顯的發現,bindValue()方法是先給參數然后綁定參數最后執行,而且每次執行execute()前都需要再次綁定參數,而bindParam()方法則沒有這個順序問題,也無需再次綁定參數,在給定參數之前或者之后都不會報錯。

2、bindColumn()方法綁定參數

bindColumn() 綁定一列到一個 PHP 變量

安排一個特定的變量綁定到一個查詢結果集中給定的列。這個方法綁定的是結果集PDOStatement::bindColumn?(?mixed?$column?,?mixed?&$param?[,?int?$type?[,?int?$maxlen?[,?mixed$driverdata?]]]?)?:?bool

執行成功時返回?TRUE, 或者在失敗時返回?FALSE。

參數說明column

結果集中的列號(從1開始索引)或列名。如果使用列名,注意名稱應該與由驅動返回的列名大小寫保持一致。

param

將綁定到列的?PHP?變量名稱

type

通過?PDO::PARAM_*?常量指定的參數的數據類型。

maxlen

預分配提示。

driverdata

驅動的可選參數。

下面通過具體的示例來理解bindColumn()方法<?php

header('content-type:text/html;charset=utf-8');

try{

$pdo=new?PDO('mysql:host=localhost;dbname=test','root','root');

$sql="select?username,password,email?from?test_pdo?where?id<20";

$stmt=$pdo->prepare($sql);

$stmt->execute();

$stmt->bindColumn(1,$username);

$stmt->bindColumn(2,$password);

$stmt->bindColumn(3,$email);

//綁定參數后需要用fetch(PDO::FETCH_BOUND)來獲取結果集

while?($stmt->fetch(PDO::FETCH_BOUND))?{

echo?'用戶名:'.$username.'-密碼:'.$password.'-郵箱'.$email.'
';

}

}catch(PDOException?$e){

echo?$e->getMessage();

}

總結

以上是生活随笔為你收集整理的php pdo 参数绑定,PDO绑定参数的其他方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。