我有一个生成一个MySQL的SELECT语句中的PHP脚本:MySQL的SELECT语句GET变量
SELECT * FROM话,其中一句话=“经典”
有中字表中只有一个字可变字等于经典。
当我的PHP页面执行时,我没有从查询中得到任何结果。如果我回显用于执行查询的字符串,请将其剪切并粘贴到数据库中的PHPMyAdmin的SQL窗口中,但我也没有得到任何结果。但是,如果我将该EXACT字符串重新输入到PHPMyAdmin中的SQL窗口中(使用相同的引号字符),我会得到一行的正确结果。
select语句中的经典单词来自PHP GET(请参阅下面的代码)。我可以回显$ word变量,并获得'Classic'的正确结果。我究竟做错了什么?
这里是我的代码:
<?php
require ('dbconnect.php');
$word = $_GET["word"];
$selectStr = "SELECT * FROM words WHERE word = '" . $word . "'";
if ($results = MySQL($dbName, $selectStr))
{
$rowCount = MySQL_NUMROWS($results);
}
$resultRow = MYSQL_FETCH_ROW($results);
$wordID = $resultRow[0];
?>
你应该永远不要直接在SQL语句上使用请求变量。 – samura
它不回答你的问题,但请记住你**必须**总是在用户输入之前清理用户输入,然后在查询中使用它以避免SQL注入! – Marco
会不会有任何区分大小写问题? – Sourabh