2011-12-22 3 views
0

私はMYSQLからPDOに移行しています。私はPDOの公式文書を読みましたが、私はコードで失敗を見つけることができません。bindParamが動作しません

$name = 'fooUser'; 
$stmt = $PDO->prepare('SELECT * FROM users WHERE username=:name'); 
$stmt->bindParam(':name', $name, PDO::PARAM_INT); 
$stmt->execute(); 

このクエリは、影響を受けた行を返します。起こらないようにしてください。

+0

PDO :: PARAM_INTは、PDOに入力を整数として解析させるために使用されます。 'fooUser'は整数ではありません。 – kba

答えて

0

$stmt->bindParam(':name', $name, PDO::PARAM_STR); 

あなたが入力の間違った種類を設定しているように変更

$stmt->bindParam(':name', $name, PDO::PARAM_INT); 

+0

しかし、これは問題です。なぜなら、bindParam()ではINTが必要なので、クエリはエラーを返します。 – mauriblint

+0

@mauriblintそれでは文字列の送信を停止しますか?基本的に、データベースに文字列として格納されているユーザー名を取得する場合は、PDOに文字列を送信していることを伝える必要があります(まあ、できます)。 – Prisoner

関連する問題