pdo中使用bindParam和bindValue的区别

本文介绍如何使用 PHP 的 PDO 扩展进行参数化查询,包括 bindParam 和 bindValue 方法的区别及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
header("Content-type: text/html; charset=utf-8");
$dbms='mysql';
$dbName='goodsdb';
$user='root';
$pwd='root';
$host='localhost';
$charset = 'utf8';
$dsn="$dbms:host=$host;dbname=$dbName;charset=$charset";
try{
    $pdo=new PDO($dsn,$user,$pwd);
}
catch(Exception $e)
{
    echo $e->getMessage();
}

//查询
$sql = "select * from stu where id=?";
//准备sql模板
$stmt = $pdo->prepare($sql);
$name = 'a';
/*
 * 绑定参数  .这里讲一下 2个方法的区别
 * bindParam是引用传递
 * bindValue是值传递
 *
 */
//例1 2种方式都支持
$id = 11;
$stmt->bindParam(1,$id);
$stmt->bindValue(1,$id);

//例2 bindParam适用 bindValue不适用
$id = 11;
$stmt->bindParam(1,$id);
//由于某种业务逻辑
$id = 3;
//这时候。我们的预期是想查询id为3的结果

//例3 bindValue适用 bindParam不适用.这里你用bindParam会报语法错误
$stmt->bindValue(1,1);

$stmt->execute();



while ($row=$stmt->fetch())
{
    print_r($row);
}
//释放查询结果
$stmt = null;
//关闭连接
$pdo = null;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值