当前位置: 首页 > news >正文

黔西南布依族苗族自治州网站建设_网站建设公司_网站备案_seo优化

网站怎样被百度收录,vps 同时翻墙和做网站,网站js下载,青岛外贸网站建设费用这篇文章主要介绍了关于PHP中的操作mysqli的预处理prepare #xff0c;有着一定的参考价值#xff0c;现在分享给大家#xff0c;有需要的朋友可以参考一下PHP中的操作mysqli的预处理prepare1、【PHP错误】Cannot pass parameter 2 by reference这个错误的意思是不能按引用传…这篇文章主要介绍了关于PHP中的操作mysqli的预处理prepare 有着一定的参考价值现在分享给大家有需要的朋友可以参考一下PHP中的操作mysqli的预处理prepare1、【PHP错误】Cannot pass parameter 2 by reference这个错误的意思是不能按引用传递第2个参数出现这个错误的原因是bind_param()方法里的除表示数据类型的第一个参数外均需要用变量而不能用直接量,因为其它参数都是按引用传递的$sql select * from tmp where myname? or sex ?;$stmt $mysqli-conn-prepare($sql);$name a;$sexb;$stmt-bind_param(ss,$name,$sex);//必须要这样传参且在mysqli等的预处理参数绑定中必须要指定参数的类型且只能一次性绑定全部参数不能像PDO那样一个个绑定//$stmt-bind_param(ss,a,b);//这种方式的会报错Fatal error: Cannot pass parameter 2 by reference$stmt-execute();if($mysqli-conn-affected_rows){$result $stmt-get_result();while($row $result-fetch_assoc()){var_dump($row);}}2、PHP防SQL注入不要再用addslashes和mysql_real_escape_string了不论是使用addslashes还是mysql_real_escape_string,都可以利用编码的漏洞来实现输入任意密码就能登录服务器的注入攻击(攻击的原理我就不多说了感兴趣的同学可以研究下字符编码中单字节和多字节的问题)mysql_real_escape_string之所以能够防注入是因为mysql_escape_string本身并没办法判断当前的编码必须同时指定服务端的编码和客户端的编码加上就能防编码问题的注入了。虽然是可以一定程度上防止SQL注入但还是建议以下的完美解决方案。完美解决方案就是使用拥有Prepared Statement机制的PDO和MYSQLi来代替mysql_query(注mysql_query自 PHP 5.5.0 起已废弃并在将来会被移除)PDO:$pdo new PDO(mysql:dbnamedbtest;host127.0.0.1;charsetutf8, user, pass);$pdo-setAttribute(PDO::ATTR_EMULATE_PREPARES, false);$pdo-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);$stmt $pdo-prepare(SELECT * FROM employees WHERE name :name);$stmt-execute(array(name $name));foreach ($stmt as $row) {// do something with $rowMYSQLI:$stmt $dbConnection-prepare(SELECT * FROM employees WHERE name ?);$stmt-bind_param(s, $name);$stmt-execute();$result $stmt-get_result();while ($row $result-fetch_assoc()) {// do something with $row}PDO$pdo new PDO(mysql:dbnamedbtest;host127.0.0.1;charsetutf8, user, pass);$pdo-setAttribute(PDO::ATTR_EMULATE_PREPARES, false);$pdo-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);$stmt $pdo-prepare(SELECT * FROM employees WHERE name :name);$stmt-execute(array(name $name));foreach ($stmt as $row) {// do something with $row}MYSQLi$stmt $dbConnection-prepare(SELECT * FROM employees WHERE name ?);$stmt-bind_param(s, $name);$stmt-execute();$result $stmt-get_result();while ($row $result-fetch_assoc()) {// do something with $row}这个错误的意思是不能按引用传递第2个参数出现这个错误的原因是bind_param()方法里的除表示数据类型的第一个参数外均需要用变量而不能用直接量,因为其它参数都是按引用传递的以上就是本文的全部内容希望对大家的学习有所帮助更多相关内容请关注PHP中文网相关推荐
http://www.ihoyoo.com/news/21698.html

相关文章:

  • 建立互联网网站需要钱嘛部门网站建设管理制度
  • 温州网站排名团队潍坊网站建设SEO优化
  • 做艺术字的网站wordpress怎么新建子域名
  • 花店网站建设课程设计网站建站教程
  • 河北 建设厅网站首页Wordpress 会员预约
  • 做网站公司需要什么职位四川省建设三类职称网站
  • 兴华建设集团有限公司网站工程师工资一般是多少
  • 企业网络营销策略研究大连优化排名推广
  • 古典网站建设公司个人兴趣图片集网站建设
  • html网页建设网站代码游戏推广员招聘
  • 固安建设局网站wordpress apple4us
  • 慧宇巅峰网络-烟台网站建设公司京东网上购物官方网站
  • 品牌电商网站wordpress 关闭邮件
  • 女生学网站建设好学吗网站建设端口
  • 教做甜点的网站今天新闻最新消息
  • 网站制作教程手机中国科技发展成果
  • 如何更换网站服务器合肥网站建设设计公司
  • 网站上线流程青岛网站建设‘’
  • 智慧团建信息系统网站登录wordpress酒店预订主题
  • 黄石网站设计制作海口网站建设
  • 资讯网站 怎样 增强用户粘度温州小程序开发哪家好
  • 免费企业黄页网站网址上海门户网站制作公司
  • 创造与魔法官方网站做自己网络营销方案3000字
  • 建设银行网站功能介绍wordpress posts
  • 郑州做网站软件网站模板免费
  • 网站前后端的关系模板网站建设 报价
  • 珠海网站建设找哪家好网站代码跑偏了怎么做
  • 商丘网站建设想象力网络可以看小视频的浏览器
  • 个人网站做什么类型好菏泽哪里有做网站的
  • 哪里的网站建设免费网页制作软件下载