php pdo使用变量显示mysql查询的输出

时间:2012-10-11 08:09:10

标签: php mysql pdo

我是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查询结果的正确且最佳方法吗?如果没有,请你提出一个有效的例子。

提前致谢,

2 个答案:

答案 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'];