我遇到了从我的PDO语句返回值的问题。从PDO查询返回值的问题
这是我的代码:
//Execute test
$this->checkConnect();
$stmt = $this->dbh->prepare("SELECT p_id FROM People WHERE lastName = :param1 AND firstName = :param2");
$stmt->bindParam(':param1', $this->lName);
$stmt->bindParam(':param2', $this->fName);
$stmt->execute();
$count = $stmt->rowCount();
//Determine value of test
if($count == FALSE)
{
return FALSE;
}
else
{
$dummyvar = $stmt->fetch();
$this->p_id = implode($dummyvar);
}
当我正在经历我的数据库中的记录,我注意到某个值从我不得不投入是关闭的。当我执行查询时,它应该从表People
中获取p_id
的值。够简单。但是,发生的情况是该号码被附加了两次。例如,说p_id
等于1. this->p_id
将等于11.或者是p_id
等于2,输出将是22.我在MySQL中执行了这个查询,并且该值是正确的。我不确定我的PHP代码中发生了什么。也许与内爆有关?我不确定。
任何洞察力将不胜感激。
此外:我还应该说明p_id
是唯一的,因此只能返回一个值。
顺便说一句,你不能依赖于'PDOStatement对象:: rowCount时() '在SELECT语句之后:并非所有司机都会回复有意义的回应。相反,调用'fetch()'并将结果与'false'比较。请参阅[rowCount文档](http://www.php.net/manual/en/pdostatement.rowcount.php)。 – slashingweapon
我读过。在这种情况下,它似乎可以达到预期的目的。在某些情况下,我已将其更改为您提及的相同方法。 – Mlagma