简单的表查询语法错误?

我希望这里有人能帮我看看这个错误来自哪里。

我有一个有两个字段的表单:电子邮件和密码。 表单的动作将它带到应该使用的php页面

  • 开始一个会话
  • 通过mysql连接到数据库
  • 运行查询并在表格中选择一个电子邮件字段类似于表单中提交的电子邮件的行。
  • 在这个阶段它是不完整的,我只回应脚本末尾的一些字段,看它是否有效。

    我测试了它,并且在最后一行发现了一个意外的结束错误; 我遗漏了一个支架。 所以我虽然没有其他错误,但是当我再次测试时,我得到了这个错误:

    你的SQL语法有错误; 请检查与您的MySQL服务器版本相对应的手册,在第6行的'@ gmail.com'附近使用正确的语法

    @ gmail.com是我提交的电子邮件的最后一位。

    以下是php(action)页面的代码:

    <?php
    session_start();
    $_SESSION['sessionemail'] = $_POST['email'];
    $_SESSION['sessionpassword'] = $_POST['password'];
    $_SESSION['authuser'] = 0;
    
    $dbhost = 'somewhere.com';
    $dbuser = 'user';
    $dbpass = 'pw';
    
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
    
    $dbname = 'medreunten_db1';
    mysql_select_db($dbname) or die(mysql_error($conn)); 
    
    
    $query = 'SELECT
        name, smacker, surname, sex, age, nationality, email
        FROM
        employee
        WHERE
        email = ' . $_POST['email'];
    $result = mysql_query($query, $conn) or die (mysql_error($conn));
    extract(mysql_fetch_assoc($result));  
    
    
    while ($row = mysql_fetch_array($result)) {
    echo $row['name'];
    echo $row['surname'];
    echo $row['age'];
    }
    ?>
    

    我试着删除了前5行,但我仍然遇到了同样的错误。

    不知何故,当PHP被解析,浏览器读取电子邮件变量的内容,就好像它是我的PHP代码的一部分。 至少这就是我的想法,因为我收到的错误指出“@ gmail.com”附近的语法存在问题。

    我希望有人能给我一个线索!


    您有一个SQL注入,在发送到MySQL数据库之前,始终将mysql_real_escape_string()应用于任何用户提交的或可能被篡改的数据。

    注意'围绕电子邮件变量。

    $email = mysql_real_escape_string($_POST['email']);
    
    $query = "
    SELECT name, smacker, surname, sex, age, nationality, email
    FROM employee
    WHERE email = '$email'
    ";
    

    <?php
    session_start();
    $_SESSION['sessionemail'] = $_POST['email'];
    $_SESSION['sessionpassword'] = $_POST['password'];
    $_SESSION['authuser'] = 0;
    
    $dbhost = 'dedi147.cpt2.host-h.net';
    $dbuser = 'medreunten_1';
    $dbpass = 'AGqrVrs8';
    
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
    
    $dbname = 'medreunten_db1';
    mysql_select_db($dbname) or die(mysql_error($conn)); 
    
    
    $query = "SELECT name, smacker, surname, sex, age, nationality, email FROM employee WHERE email = '" . $_POST['email']."'";
    $result = mysql_query($query, $conn) or die (mysql_error($conn));
    extract(mysql_fetch_assoc($result));  
    
    
    while ($row = mysql_fetch_array($result)) {
    echo $row['name'];
    echo $row['surname'];
    echo $row['age'];
    }
    ?>
    

    尝试这个,应该工作

    链接地址: http://www.djcxy.com/p/69833.html

    上一篇: Simple table query syntax error?

    下一篇: Help with a unexpected T