PHP MySQL 错误列名称在“字段列表”中不存在


PHP MySQL Error column name does not exist in 'field list'

$select = rtrim(trim('SELECT'.
                 (isset($_REQUEST['lName']) ? ' lName,' : '').
                 (isset($_REQUEST['fName']) ? ' fName,' : '').
                 (isset($_REQUEST['address']) ? ' address,' : '').
                 (isset($_REQUEST['email']) ? ' email,' : '').
                 (isset($_REQUEST['number']) ? ' contactNum,' : '').
                 (isset($_REQUEST['major']) ? ' major,' : '').
                 (isset($_REQUEST['gpa']) ? ' gpa,' : '').
                 (isset($_REQUEST['year']) ? ' academicYear,' : '').
                 (isset($_REQUEST['credits']) ? ' totalCredits' : '')),',');
        $where = strlen(trim($_REQUEST['whereQ'])) != 0 ? " WHERE ".$_REQUEST['whereQ'].";" : ";";
        print $select." FROM Student".$where."<br>";
    $result = mysql_query($select."FROM Student".$where,$con) or die("Could not perform query: ".mysql_error());
    while($data = mysql_fetch_row($result)) {
        foreach($data as $col) {
            echo $col." ";
        }
    }
    mysql_close();

这就是我的场景。我在本地数据库上运行上面的代码,但我得到的是一个错误,指出数据库不包含我要求的列名。但问题是它存在。这是怎么回事?代码有问题吗?也许是字符串连接的方式。:(帮助。

看看这里如何在"FROM"之前有一个空格

print $select." FROM Student".$where."<br>"

在这里你没有

mysql_query($select."FROM Student".$where,$con)

使用WHERE ".$_REQUEST['whereQ'] - SQL 注入是非常糟糕的做法

你的HTML不是这样的吗:

<input name="whereQ" value="name=....">