1. 云栖社区>
  2. PHP教程>
  3. 正文

php mysqli 预处理 如何绑定参数

作者:用户 来源:互联网 时间:2017-12-01 15:46:39

php参数mysqli预处理绑定如何

php mysqli 预处理 如何绑定参数 - 摘要: 本文讲的是php mysqli 预处理 如何绑定参数,php mysqli 预处理 怎么绑定参数/***php中预处理执行sql*$sql[String]sql语句*$args[array]参数*/publicfunctionexeSql($sql,$args){$mysqli_stmt=$m

php mysqli 预处理 怎么绑定参数/***php中预处理执行sql*$sql[String]sql语句*$args[array]参数*/publicfunctionexeSql($sql,$args){$mysqli_stmt=$mysqli->prepare($sql);//由于$sql由调用者传入,所以sql语句和参数个数都不确定//疑问1:怎么获取参数类型呢。php中有没有相应的函数呢。//如果没有我用如下方法:getParamTypeStr($arr)是否可行呢。有什么好的建议吗。//疑问2:怎么绑定参数呢。如下为参数个数确定时的绑定方法。//$mysqli_stmt->bind_param("ssi","xx","xx",20);$mysqli_stmt->execute();$mysqli->close();}privatefunctiongetParamTypeStr($arr){$count=count($arr);$typestr="";for($i=0;$i<$count;$i++){$type=gettype($arr[$i]);switch($type){case"integer":$typestr.="i";break;case"float":case"double":$typestr.="d";break;case"string":$typestr.="s";break;}}return$typestr;}我知道java中是通过如下方式实现的://java中预处理执行sqlpublicvoidexeSql(Stringsql,Object[]args){PreparedStatementpreparedStatement=connection.prepareStatement(sql);for(inti=0;ibind_param(getParamTypeStr($args),$args[0],$args[1],$args[2]...);推荐你用PDO,mysqli的这个功能挺不好用的,PDO的bindParam()方法要直观的多http://www.php.net/manual/en/pdostatement.bindparam.php------解决方案--------------------我这里有一个我自己写的PHP的PDO类,你可以直接用:<?php/*连接数据库类MysqlConnect*/classMysqlConnect{private$dbhost=null;private$dbuser=null;private$dbpwd=null;private$dbname=null;private$dbport=null;private$ifpdo=null;private$dburi=null;private$handler=null;function__construct($dbhost,$dbuser,$dbpwd,$dbname,$dbport,$ifpdo,$dburi){$this->dbhost=$dbhost;$this->dbuser=$dbuser;$this->dbpwd=$dbpwd;$this->dbname=$dbname;$this->dbport=$dbport;$this->ifpdo=$ifpdo;$this->dburi=$dburi;//PDO的URI参数,可以查手册if($this->ifpdo==1){//表示调用PDO来操作数据库$this->handler=$this->CreatePdo();}elseif($this->ifpdo==0){//这里可以写MYSQLI的方法$this->handler=null;}}/*----------------这里是入口---------------------*///@paramsql:外部调用时传递的完整SQL语句//@parambindArray:绑定的参数数组,与sql语句有关,如果没有PDO占位符此处为空//@paramaction:传递操作参数,"select"/"update"/"delete"/"insert"publicfunctionexeSql($sql,$bindArray=array(),$action=""){

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 参数 , mysqli , 预处理 , 绑定 如何 ,以便于您获取更多的相关知识。