2016-01-02 4 views
0

я создать сценарий входа с PDO, но у меня есть некоторые проблемыPhp п.д.о. Войти скрипт

if($_POST['giris']){ 
     $query = $db->prepare("SELECT * FROM user WHERE 
     username = :userg, 
     pw = :pwg"); 
     $result = $query->execute(array(
     'userg' => $_POST['userg'], 
     'pwg' => $_POST['pwg'], 
     )); 

     if($result > 0){ 
      echo "ok"; 
     }else{ 
      echo "no"; 
     } 

    } 

Я думаю, что если результат проблема я, как исправить? Я хочу, если username = username и pw go login.

+1

'WHERE username =: us erg, pw =: pwg «Вы используете запятую вместо логического оператора http://dev.mysql.com/doc/en/logical-operators.html. Проверка ошибок на PDO http://php.net/manual/en/pdo.error-handling.php сигнализировала бы синтаксическую ошибку. Теперь у вас есть синтаксис UPDATE. –

+0

Плюс, у нас нет возможности узнать, успешно ли вы подключились с использованием одного и того же API, или чтобы ваши массивы POST сохраняли значения. Проверьте также наличие ошибок. –

+1

На самом деле языки запросов - это те, которые больше всего похожи на человеческий язык ... Я хочу, чтобы имя пользователя = имя пользователя «И» pw go login. Как упоминал @Fred .. –

ответ

2

Изменить это:

$query = $db->prepare("SELECT * FROM user WHERE 
    username = :userg, 
    pw = :pwg"); 
    $result = $query->execute(array(
    'userg' => $_POST['userg'], 
    'pwg' => $_POST['pwg'], 
    )); 

Для этого:

$query = $db->prepare("SELECT * FROM user WHERE 
    username = :userg AND pw = :pwg"); 
    $query->bindParam(':userg', $_POST['userg']); 
    $query->bindParam(':pwg', $_POST['pwg']); 
    $query->execute(); 

Благодаря Фред-II- для ловли мою ошибку в запросе на выборку! Изменение:

if($result > 0){ 
     echo "ok"; 
    }else{ 
     echo "no"; 
    } 

To:

$count = $query->rowCount(); 
if($count==1){ 
echo "ok"; 
    }else{ 
     echo "no"; 
    } 
+0

i change okey work your code. но я вхожу в систему, попробую, если ($ result> 0) { echo "ok"; } else { echo "no"; } здесь проблема, я вхожу в систему и печатаю «нас». i not = Мне нужно печатать нет как? –

+0

@NashawnaSywikh: Я редактировал свой пост. Попробуйте новый код –

+2

@ChrisG 'username =: userg, pw =: pwg' следует читать как' username =: userg AND pw =: pwg' - Использование запятой - это синтаксис UPDATE. –

0

попробовать этот запрос [SELECT * FROM пользователя, где имя пользователя =: пользователь И Pw =: PW]

if($_POST['giris']){ 
 

 
$req = $bdd->prepare('SELECT * FROM user WHERE username = :user AND pw = :pw'); 
 
$req->execute(array('user' => $_POST['userg'], 'pw' => $_POST['pwg'])); 
 
    
 
    if($result > 0){ 
 
     echo "ok"; 
 
    }else{ 
 
     echo "no"; 
 
    } 
 
}