php mysqli 预处理 怎么绑定参数

php mysqli 预处理 怎么绑定参数,第1张

<?php

/* 连接数据库类 MysqlConnect */

class MysqlConnect{

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

}

}

/* ----------------这里是入口--------------------- */

//@param sql:外部调用时传递的完整SQL语句

//@param bindArray:绑定的参数数组,与sql语句有关,如果没有PDO占位符此处为空

//@param action:传递 *** 作参数,"select"/"update"/"delete"/"insert"

public function exeSql($sql,$bindArray=array(),$action=""){

$stmt=$this->handler->prepare($sql)

$stmt->execute($bindArray)

switch($action){

case "select":

return $stmt->fetch(PDO::FETCH_ASSOC)

break

case "selectAll":

return $stmt->fetchAll(PDO::FETCH_ASSOC)

break

case "update":

case "delete":

return $stmt->rowCount()

break

case "insert":

return $this->handler->lastInsertId()

break

case "count":

return $stmt->rowCount()

default:

return ""

}

}

public function query($sql){

return $this->handler->query($sql)

}

private function CreatePdo(){

try{

$handler=new PDO($this->dburi,$this->dbuser,$this->dbpwd)

$handler->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)

return $handler

}catch(PDOException $e){

$e->getMessage()

$this->handler=null

}

}

private function __get($args){

if($args=='handler'){

return $this->handler

}

}

}

require(NEO_A_P.'\data\sqlconfig.php')//这里是sql的连接文件,下面创建对象的时候需要的变量就是这个文件里要有的

$handler=new MysqlConnect($dbhost,$dbuser,$dbpwd,$dbname,$dbport,$ifpdo,$dburi)

?>

这样绑定不对,你穿进去的是带""的,你得稍微改下逻辑了应该改为

String sql="select * from book where name like '%"+value1+"%' or author like'%"+value2+"%'"

这样拼接没问题,传进来的参数可以直接放进去,我记得原来写的时候,like里面有问号,传入字符串会出错,逻辑你想想稍微改一下,难度不大


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7421168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存