php的PDO类中bindValue和bindParam的区别

// bindParam是绑定一个PHP变量到一个SQL参数.是引用方式传递
// 所以你可以改变变量值,再执行.就赋给SQL语句不同的值
// 注意与bindValue的区别

 try {   
$sql = 'UPDATE `pdo` set `user` = :user, `email` = :email WHERE `id` = :id';
$pre = $dbh->prepare($sql);   
// 此处bindParam.执行一次更改id=2,执行一次更改id=3.结果不一样
$user = "ncat2";
$email = "ncat2@admpub.com";
$id = 2;
$pre->bindParam(':user', $user, PDO::PARAM_STR);
$pre->bindParam(':email', $email, PDO::PARAM_STR);
$pre->bindParam(':id', $id, PDO::PARAM_INT);
$pre->execute();
$user = "ncat3";
$email = "ncat3@admpub.com";
$id = 3;
$pre->execute();
unset($user, $email, $id);
// 此处bindValue. 执行两次id=4的SQL
$user = "ncat4";
$email = "ncat4@admpub.com";
$id = 4;
$pre->bindValue(':user', $user, PDO::PARAM_STR);
$pre->bindValue(':email', $email, PDO::PARAM_STR);
$pre->bindValue(':id', $id, PDO::PARAM_INT);
$pre->execute();
$user = "ncat5";
$email = "ncat5@admpub.com";
$id = 5;
$pre->execute();
} catch (PDOException $e)
{var_dump($e);}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PDOPHP Data Objects)是 PHP 中一个轻量级的、通用的数据库访问接口,它提供了一种简单、一致的方法来访问不同类型的数据库。使用 PDO 接口可以方便地连接多种不同的数据库,如 MySQL、PostgreSQL、Oracle 等。 以下是使用 PDO 连接 MySQL 数据库并查询数据的示例: ```php // 数据库连接参数 $host = 'localhost'; $dbname = 'test'; $user = 'root'; $password = ''; // 连接数据库 $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4"; try { $pdo = new PDO($dsn, $user, $password); } catch (PDOException $e) { die('数据库连接失败:' . $e->getMessage()); } // 查询数据 $sql = "SELECT * FROM users WHERE id = :id"; $stmt = $pdo->prepare($sql); $stmt->bindValue(':id', 1, PDO::PARAM_INT); $stmt->execute(); $user = $stmt->fetch(PDO::FETCH_ASSOC); // 输出结果 print_r($user); ``` 这个示例中,首先定义了数据库连接参数,然后使用 `$dsn` 字符串创建 PDO 对象,最后使用 `prepare()` 方法准备 SQL 语句并执行查询操作。 需要注意的是,在 PDO 中使用 `prepare()` 方法准备 SQL 语句可以有效地防止 SQL 注入攻击,同时也可以提高查询性能。在 `prepare()` 方法中可以使用占位符 `:name` 或 `?` 来代替实际的参数,然后使用 `bindValue()` 或 `bindParam()` 方法为占位符绑定实际的参数值。 除了查询数据,PDO 还提供了许多其他的数据库操作方法,如插入、更新、删除数据等,具体可以查看官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值