0

我是 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'];
}

然而,这会产生一个没有错误的空白结果。

我该如何纠正这个语法?我还需要更改语法以将变量绑定到可变的 $employeeid。

这是获取和输出输出单个记录的mysql查询结果的正确和最佳方法吗?如果不是,请您提供一个可行的示例。

提前致谢,

4

2 回答 2

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'];
于 2012-10-11T08:26:28.910 回答
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; 
  } 
} 
于 2012-10-11T08:21:36.903 回答