Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php语言编写的语句实现通用选择(mysql)函数_Php_Mysql_Pdo - Fatal编程技术网

使用php语言编写的语句实现通用选择(mysql)函数

使用php语言编写的语句实现通用选择(mysql)函数,php,mysql,pdo,Php,Mysql,Pdo,我试图在php上创建一个通用方法/函数,它使用带有where子句的任何select语句。然而,有些事情是不对的。你能帮我一下吗 使用数据的示例: DB inherit PDO class. $db=new DB; $db->select("SELECT count(*) FROM `login` WHERE Email='?'", "papa1980@gmail.com"); 这里是函数 public function select($sqlString,...

我试图在php上创建一个通用方法/函数,它使用带有where子句的任何select语句。然而,有些事情是不对的。你能帮我一下吗

使用数据的示例:

DB inherit PDO class.
$db=new DB;
$db->select("SELECT count(*) FROM `login` WHERE Email='?'", 
            "papa1980@gmail.com");
这里是函数

public function select($sqlString,...$bindParameters)
{

   $stmt=$this->prepare($sqlString);
   foreach($bindParameters as $key=>$bindParameter)
   {

       $stmt->bindParam(($key+1),$bindParameter);
       echo '<pre>' . print_r($stmt, true) . '</pre>';
   }
   echo '<pre>' . print_r($bindParameters, true) . '</pre>';
   if($stmt->execute())
   {
       echo "execution was succesful";
   }
  echo '<pre>' . print_r($stmt->fetchAll(), true) . '</pre>';
}
在mysql中,返回1。我的php代码中有些地方不正确。

函数正在工作,但
login
WHERE Email=?错是因为什么?不应在“”中

您的函数是否返回任何内容?如果成功,它可能应返回
$stmt->fetchAll()
,如果不成功,则应返回
FALSE
。在这种情况下,您可以在使用此函数的位置执行条件检查。查看此问题的答案,看看这是否有帮助:。使用ORM解决方案可能会更好。我需要返回每个SQL的结果。但是,正如您所看到的,执行是成功的数组([0]=>Array([count(*)]=>0[0]=>0)),结果应该是1
SELECT count(*) FROM `login` WHERE Email='papa1980@gmail.com'