2014-10-06 2 views
0

У меня есть база данных для выбора кода и вывод false.PDO MYSQL output false

но имя и пароль, моя запись верна в базе данных. и я использовал серверный сервер 64b. apache: 2.49, php: 5.5.1.2. я открыть расширение на php.ini

extension=php_pdo_firebird.dll 
extension=php_pdo_mysql.dll 
extension=php_pdo_oci.dll 
extension=php_pdo_odbc.dll 
extension=php_pdo_pgsql.dll 
extension=php_pdo_sqlite.dll 


public static function getByNamePass($username, $password) { 
     $conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD); 
     $sql = "SELECT * FROM district_account WHERE username = :username AND password = :password"; 
     $st = $conn->prepare($sql); 
     $st->bindValue(":username", $username, PDO::PARAM_STR); 
     $st->bindValue(":password", $password, PDO::PARAM_STR); 
     $st->execute(); 
     $row = $st->fetch(); 
     $conn = null; 
     if ($row) return new District_Account($row); 
} 

ответ

1

Вы должны использовать bindParam()

$st->bindParam(":username", $username, PDO::PARAM_STR); 
$st->bindParam(":password", $password, PDO::PARAM_STR); 
+0

Dang, бил меня к нему. +1. – EternalHour

+0

спасибо, но я var_dump и выдаю true. код var_dump ($ st-> bindValue (": password", $ password, PDO :: PARAM_STR)); output: boolean true – phuochq

+0

$ st-> bindParam (": username", $ username, PDO :: PARAM_STR); $ st-> bindParam (": password", $ password, PDO :: PARAM_STR); output -> false – phuochq