我是pdo的新手,并且还在争吵。
我想使用mysql查询的结果填充表。查询将根据变量
返回单个结果具有以下功能:
function get_editusers($db){
try {
$result = $db->query("SELECT firstname, middlename,surname,fullname,gender, birthdate,homelanguage,department,employeetype,employeestatus,idnumber FROM Persons where employeeid= :empid");
return $result;
} catch(PDOException $ex) {
return $ex;
}
}
$useredit= get_editusers($db);
然后我使用以下内容输出值:
while($row = $useredit->fetch(PDO::FETCH_ASSOC))
{
echo $row['firstname'];
echo $row['middelname'];
echo $row['surname'];
}
然而,这会产生一个没有错误的空白结果。
如何更正此sytnax?另外,我需要更改语法以将变量绑定到vairable $ employeeid。
这是获取和输出输出单个记录的mysql查询结果的正确且最佳方法吗?如果没有,请你提出一个有效的例子。
提前致谢,
答案 0 :(得分:1)
您在查询中使用参数:empid
,并且必须为该参数传递值。没有值意味着空结果集。
使用绑定参数时,必须准备查询,绑定参数然后执行查询。
function get_editusers($db, $id){
try {
$result = $db->prepare("
SELECT firstname, middlename,surname,fullname,gender,
birthdate,homelanguage,department,employeetype,employeestatus,idnumber
FROM Persons where employeeid= :empid");
$result->bindParam(':empid', $id, PDO::PARAM_INT);
$result->execute();
return $result;
}
catch(PDOException $ex) {
return $ex;
}
}
答案 1 :(得分:1)
在执行查询之前,必须绑定参数:empid。
$sth = $dbh->prepare("SELECT firstname, middlename FROM Persons where employeeid= :empid");
$sth->bindParam(':empid', $emp_id, PDO::PARAM_INT);
$sth->execute();
$row = $sth->fetch();
echo $row['firstname'];