我正在尝试在 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/