2015-06-06 5 views
2

Привет Я новичок в pdo и пытаюсь получить переменную из кода столбца, а затем проверить, имеет ли переменная то же значение, как inputelement code.получить значение из строки mysql pdo

То сообщение об ошибке:

Fatal error: Call to a member function fetchColumn() on string in C:\xampp\htdocs\social\activation1.php on line 23

<?php require_once './auth.php'; ?> 
<?php 
if(isset($_POST["submit"])){ 

    $hostname='localhost'; 
    $user='root'; 
    $password=''; 

    if (isset($_POST['code'])) { 
     $code=$_POST['code']; 
    } 

    $username = ($_SESSION['user']['username']); 

    try { 
     $dbh = new PDO("mysql:host=$hostname;dbname=loginsystem",$user,$password); 
     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line 
     $sql = " SELECT code FROM user2 WHERE username = '$username'"; 
     $result = $sql->fetchColumn(); 
    } 
    catch(PDOException $e) 
    { 
     echo $e->getMessage(); 
    } 
    if ($result == $_POST['code']) { 
     $message['success'] = 'Neuer Benutzer (' . htmlspecialchars($_POST['username']) . ') wurde angelegt, <a href="login.php">weiter zur Anmeldung</a>.'; 
     header('Location: http://' . $_SERVER['HTTP_HOST'] . '/social/main.php'); 
    } else { 
     print('<pre> Please try it again. :: '); 
     print('</pre>'); 
    } 
} 
?> 

ответ

1

Я думаю, что вы заявление фальсификатор запрос $dbh->query() .Также имя пользователя записывается в quotes

$sql = "SELECT code FROM user2 WHERE username = '".$username."' "; 
    if ($res = $dbh->query($sql)) {// need to add this line in your code 
     // then after fetchColumn 
    $result = $res->fetchColumn(); 
    } 
+1

Спасибо, но теперь я получаю это сообщение: " Повторите попытку. :: ". Что не так с моим утверждением if? :) – brabus85

+0

use 'if ($ result> 0) {' вместо 'if ($ result == $ _POST ['code']) {' – Saty

+1

Mh, я снова получаю сообщение об ошибке. Оператор my if должен проверить, является ли значение входного элемента одинаковым, как значение в базе данных, твой - только если я получаю значение, или я ошибочен? :) Я принимаю ваш ответ через мгновение – brabus85

Смежные вопросы