【发布时间】:2011-11-10 01:10:21
【问题描述】:
为什么这不起作用:
public function query($query, $vars = array())
{
$link = $this->getLink();
if($link)
{
$stmt = $link->prepare($query);
if($stmt)
{
if(count($vars)>0)
{
$count = 1;
foreach($vars as $v)
{
$stmt->bindParam($count, $v);
$count++;
}
}
if($stmt->execute())
return $stmt->fetch(PDO::FETCH_ASSOC);
}
}
return false;
}
这很有效:
public function query($query, $vars = array())
{
$link = $this->getLink();
if($link)
{
$stmt = $link->prepare($query);
if($stmt)
{
if($stmt->execute($vars))
return $stmt->fetch(PDO::FETCH_ASSOC);
}
}
return false;
}
调用:
$result = $db->query('select * from users where user like ? and email like ?',array('my_user', 'myemail@domain.com'));
用最终代码编辑:
public function query($query, $vars = array())
{
$link = $this->getLink();
if($link)
{
$stmt = $link->prepare($query);
if($stmt)
{
if(count($vars)>0)
{
$count = 1;
foreach($vars as $v)
{
$stmt->bindValue($count, $v);
$count++;
}
}
if($stmt->execute())
return $stmt->fetch(PDO::FETCH_ASSOC);
}
}
return false;
}
【问题讨论】:
标签: php pdo prepared-statement