1
$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();

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

4

2 回答 2

2

看看你在“FROM”之前有一个空格

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

在这里你不

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

并且使用它真的很糟糕WHERE ".$_REQUEST['whereQ']- sql注入

于 2013-11-07T01:49:16.977 回答
0

你的HTML是不是这样的:

<input name="whereQ" value="name=....">
于 2013-11-07T01:49:51.207 回答