PHP-php pdo 中 bindParam这个方法有什么特别的作用???

发布于 2016-10-19 14:50:45 字数 912 浏览 1293 评论 4

以下是代码

$stmt = $pdo->prepare("INSERT INTO new(user,pass) VALUES('?','?')");
$stmt ->execute(array('test','123'));
$stmt ->execute(array('test2','4123'));//执行多条
$stmt ->execute(array('test4','1223'));//执行多条

//这种方法很简洁,但是还有这种bindParam方法

$stmt = $pdo->prepare("INSERT INTO new(user,pass) VALUES('?','?')");
$stmt->bindParam(1,addslashes('test'))//这里因为必须要放一个变量,所以用addslashes代替一下,
$stmt->bindParam(2,addslashes('1234'))//这里因为必须要放一个变量,所以用addslashes代替一下,
$stmt->execute();
//执行多条
$stmt->bindParam(1,addslashes('test'))//这里因为必须要放一个变量,所以用addslashes代替一下,
$stmt->bindParam(2,addslashes('1234'))//这里因为必须要放一个变量,所以用addslashes代替一下,
$stmt->execute();

$stmt->bindParam(1,addslashes('test'))//这里因为必须要放一个变量,所以用addslashes代替一下,
$stmt->bindParam(2,addslashes('1234'))//这里因为必须要放一个变量,所以用addslashes代替一下,
$stmt->execute();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

清晨说ぺ晚安 2017-07-23 01:04:04

用$stmt->bindParam(1,addslashes('test')),如果是多个值的话它就会被后面的值覆盖,因为在PHP内部使用的是引用传值,
你每bind完一条参数的时候(注:SQL语句中所需要的参数),如果不执行execute()那么就会被下一条所覆盖,因为&原因,
一般我常用的就是直接在execute里面传参,要多条的话一个foreach就搞定了,这样就可以省代码了,你自己可以根据你的喜好来决定。

泛泛之交 2017-06-14 18:13:49

用上面的就可以了,
请看这篇文字:
PDOStatement::bindParam的一个陷阱(http://www.laruence.com/2012/10/16/2831.html)

晚风撩人 2017-04-06 12:15:53

都可以的,无非传值到对象中进行操作的方法不同而已,根据个人的喜好和结合具体环境选择吧!

晚风撩人 2016-12-16 16:10:06

$stm = $pdo ->prepare("UPDATE user SET time= :time WHERE user = :user");
$user = "jack";
$time = microtime(true);
$stm->bindParam(":user",$user);
$stm->bindParam(":time",$time);
$stm->execute();
$time = microtime(true);
$user = "Tom"; //bindParam一次之后不需要再次绑定,只要直接改变变量的值即可
$stm->execude();

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文