源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别

  • 时间:2020-08-10 09:28 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
[b]PDOStatement::bindParam — 绑定一个参数到指定的变量名。[/b] 绑定一个PHP变量到用作预处理的SQL语句中的对应命名占位符或问号占位符。 不同于 PDOStatement::bindValue() ,此变量作为引用被绑定,并只在 PDOStatement::execute() 被调用的时候才取其值。 [b]PDOStatement::bindValue — 把一个值绑定到一个参数。[/b] 绑定一个值到用作预处理的 SQL 语句中的对应命名占位符或问号占位符。
[u]复制代码[/u] 代码如下:
<?php $stm = $pdo->prepare("select * from users where user = :user"); $user = "jack"; //正确 $stm->bindParam(":user",$user); //错误 $stm->bindParam(":user","jack"); //正确 $stm->bindValue(":user",$user); //正确 $stm->bindValue(":user","jack");   //所以使用bindParam是第二个参数只能用变量名,而不能用变量值,而bindValue至可以使用具体值。 ?>
[b]PDOStatement::bindColumn — 绑定一列到一个 PHP 变量。[/b] 安排一个特定的变量绑定到一个查询结果集中给定的列。每次调用 PDOStatement::fetch() 或 PDOStatement::fetchAll() 都将更新所有绑定到列的变量。
[u]复制代码[/u] 代码如下:
<?php function  readData ( $dbh ) {     $sql  =  'SELECT name, colour, calories FROM fruit' ;     try {         $stmt  =  $dbh -> prepare ( $sql );         $stmt -> execute ();           /*  通过列号绑定  */         $stmt -> bindColumn ( 1 ,  $name );         $stmt -> bindColumn ( 2 ,  $colour );           /*  通过列名绑定  */         $stmt -> bindColumn ( 'calories' ,  $cals );           while ( $row  =  $stmt -> fetch ( PDO :: FETCH_BOUND )) {             $data  =  $name  .  "\t"  .  $colour  .  "\t"  .  $cals  .  "\n" ;             print  $data ;         }     }     catch ( PDOException $e ) {         print  $e -> getMessage ();     } } readData ( $dbh ); ?>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部