2016-09-02 3 views
1

Error i get from WAMP非静的メソッドPDO ::引用符()データベースから簡単なユーザ名とPWチェックをやろうとし

$username = $_POST['username']; 
$password = $_POST['password']; 


$db = new PDO('mysql:host='.$DB_HOST.';dbname='.$DB_DATABASE.'', ''.$DB_USER.'', ''.$DB_PASSWORD.''); 

$query = $db->query("SELECT * FROM login_details WHERE username=:username AND password=:password"); 
$query->bindValue(':username', $username, PDO::PARAM_STR); 
$query->bindValue(':password', $password, PDO::PARAM_STR); 
$query->execute(); 
$row_count = $query->rowCount(); 

、スタティックにコールすることはできませんに... 私はイライラのポイントを超えてよ。 ..

+1

質問のタイトルと実際の質問は異なります。 – tkausl

+0

あなたのタイトルとエラーのスクリーンショットは、ところで2つの異なることを教えてくれます。 –

+0

あなたは 'prepare'を使うべきときに' query'を使っています。 –

答えて

2

代わりにprepareを使用してください。

$username = $_POST['username']; 
$password = $_POST['password']; 

$db = new PDO('mysql:host='.$DB_HOST.';dbname='.$DB_DATABASE.'', ''.$DB_USER.'', ''.$DB_PASSWORD.''); 

$query = "SELECT * FROM login_details WHERE username=:username AND password=:password"; 
$statement = $db->prepare($query); 
$statement->bindValue(':username', $username, PDO::PARAM_STR); 
$statement->bindValue(':password', $password, PDO::PARAM_STR); 


$statement->execute(); 
$row_count = $statement->rowCount(); 

echo $row_count; 

詳細情報here。 PDOの$ stmtは用

+0

ありがとう、これ以上読んでいる! –

1

以下のコードでそれをチェックアウト...

$stmt = $db->prepare("SELECT * FROM login WHERE username=:username AND password=:password"); 
    $stmt->bindValue(":username", $username, PDO::PARAM_STR); 
    $stmt->bindValue(":password", $password, PDO::PARAM_STR); 
    $stmt->execute(); 

は$ DB-経由でサポートされています>( "SQL")ではないクエリを準備します。その後、準備された文にparamsをバインドして実行することができます。

関連する問題