用于搜索mysql数据库的PHP脚本不会返回结果

时间:2013-08-08 05:57:25

标签: php mysql

按照我写的代码。即使表中包含关键字,也不会返回任何值。

<?php
$conn = mysql_connect("localhost", "root", "qwerty");
mysql_select_db("mis", $conn);
$coursename=$_POST['coursename'];


$sql = "SELECT *
FROM course 
WHERE coursename='$coursename'".
"ORDER BY coursename";

$rs = mysql_query($sql);

while($row = mysql_fetch_array($rs))
{ 
echo $row['coursename'];
};

?>

4 个答案:

答案 0 :(得分:1)

问题是区分大小写。 MySQL标识符不区分大小写,除非您将它们包含在反引号中。但是,PHP数组索引

因此,如果您有一个名为CourseName的列,则以下查询工作:

SELECT *
FROM course
WHERE cOuRSEnaME = 'foo'
ORDER BY courSEnAmE

但是,在PHP中将其引用为$row['coursename']$row['cOURsENamE']或任何其他不同的组合将不起作用,因为这些都是指不同的键。您必须使用$row['CourseName']

另请参阅:PHP array, Are array indexes case sensitive?

答案 1 :(得分:0)

 $sql = "SELECT *
 FROM course 
 WHERE coursename='$coursename'".
 "ORDER BY coursename";

你的代码很好但是使用串联字符串和变量要好得多,所以很容易解释它,而且我想指出你的ORDER BY语句之前没有可能导致错误的空格,所以确保它们之间有空格coursename = '" . $coursename . "' ORDER BY。请参阅下面的完整查询

 $sql = "SELECT * 
  FROM course 
  WHERE 
  coursename = '" . $coursename . "' ORDER BY coursename";

答案 2 :(得分:0)

$sql = "SELECT *
        FROM course 
        WHERE coursename='" . $coursename . "'
        ORDER BY coursename";

$result = mysql_query($sql, $conn);

if(mysql_num_rows($result) > 0) {
    while($row = mysql_fetch_array($result)) {
        echo $row['coursename'];
    }
} else {
    echo "given coursename does not exist";
}
?>

答案 3 :(得分:0)

尝试在error_reporting(E_ALL);之后立即添加<?php,看看您的浏览器是否收到任何错误消息。

您应该能够找到问题的根本原因。

祝你的课程顺利(我猜;)。