Php 从mysql行pdo获取值

Php 从mysql行pdo获取值,php,mysql,pdo,Php,Mysql,Pdo,您好,我是pdo的初学者,尝试从列代码中获取一个变量,然后检查该变量是否与inputelementcode的值相同 这就是错误信息: 致命错误:调用第23行C:\xampp\htdocs\social\activation1.php中字符串上的成员函数fetchColumn() 我认为您伪造了查询语句$dbh->query()。用户名也是用引号写的 谢谢,但现在我收到了这样一条消息:“请再试一次。”。我的if语句有什么问题?:)使用if($result>0){而不是if($result=$\u

您好,我是pdo的初学者,尝试从列代码中获取一个变量,然后检查该变量是否与inputelement
code
的值相同

这就是错误信息:

致命错误:调用第23行C:\xampp\htdocs\social\activation1.php中字符串上的成员函数fetchColumn()



我认为您伪造了查询语句
$dbh->query()
。用户名也是用
引号写的


谢谢,但现在我收到了这样一条消息:“请再试一次。”。我的if语句有什么问题?:)使用
if($result>0){
而不是
if($result=$\u POST['code']){
Mh,我再次收到错误消息。我的if语句应该检查输入元素的值是否与数据库中的值相同,你的值只有在我得到值时才是,还是我为假?:)我马上接受你的答案阅读此内容将清除对
fetchColumn
及其返回类型的所有疑问,根据你的问题,你可以em是
致命错误:对成员函数fetchColumn()的调用已解决
<?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>');
    }
}
?>
 $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();
   }