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

ただし、これにより、エラーのない空白の結果が生成されます。

このsytnaxを修正するにはどうすればよいですか?また、変数を変数$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 に答える