php - 使用 php 语言使用准备好的语句的通用 select(mysql) 函数

标签 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,...$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>';
}

输出

PDOStatement 对象 ( [queryString] => SELECT count(*) FROM login WHERE Email='?' )

数组 ( [0] => papa1980@gmail.com )

执行成功

数组 ( [0] => 数组 ( [计数(*)] => 0 [0] => 0 ) )

为什么返回0?我用的是

SELECT count(*) FROM `login` WHERE Email='papa1980@gmail.com' 

在 mysql 中,它返回 1。我的 php 代码中有些东西不正确。

最佳答案

功能正常,但是 从 login 中选择 count(*),其中电子邮件=?错了,因为?不得在 ''

关于php - 使用 php 语言使用准备好的语句的通用 select(mysql) 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30086590/

相关文章:

当无法访问服务器时,PHP 的 PDO 将忽略 MySQL 的 ATTR_TIMEOUT 选项

mysql - 将 15 日之前的星期六算作工作日并跳过其他日期

php - Mysql插入多个唯一行

php - 如何从 PHP 解析以文本/xml 形式发送到服务器的 XML?

php - 在 MVC 中处理 404 错误的最佳方法是什么?

mysql - 关于部署在GCP负载上的MySQL

php - 在 PDO 准备语句中将值传递给 MySQL IN 操作?

php - 将 mysql_data_seek 函数更改为 PDO

php - 从 href 链接问题下载 pdf

php - 使用 Glob() 时如何删除文件路径?