我正在尝试使用此代码搜索多个列:
<?php
// Connection Database
$search = $_POST ['Search'];
mysql_connect("xxxxxx", "xxxxxx", "xxxxx") or die ("Error Connecting to Database");
mysql_select_db("xxxxx") or die('Error');
$data = mysql_query("SELECT CourseName, CourseDescription, CourseLeader FROM course MATCH (CourseName, CourseDescription, CourseLeader) AGAINST ('". $search ."')
or die('Error');
Print "<table border cellpadding=3>";
while($info = mysql_fetch_array( $data ))
{
Print "<tr>";
Print "<th>Course Name:</th> <td>".$info['CourseName'] . "</td> ";
Print "<th>Course Description:</th><td>".$info['CourseDescription'] . "</td> ";
Print "<th>Course Leader:</th><td>".$info['CourseLeader'] . " </td></tr>";
}
Print "</table>";
?>
我收到以下错误:解析错误:语法错误,第30行/home/a7105766/public_html/website/scripts/coursesearchdb.php中的意外T_STRING
我做错了什么?
欢呼声
答案 0 :(得分:3)
此行不正确:
$data = mysql_query("SELECT ... AGAINST ('". $search ."') or die('Error');
您甚至可以从Stack Overflow使用的语法高亮显示中看到错误。开发时是否使用语法高亮?如果没有,我建议它准确捕捉这种错误。
解决方案 - 您需要关闭双引号和左括号。
$data = mysql_query("SELECT ... AGAINST ('". $search ."')") or die('Error');
而不是die('Error')
你可以写一些有用的东西,比如die(mysql_error())
。您还可以查看trigger_error(mysql_error())
。
在您的SQL中,您缺少关键字WHERE
。有关全文搜索的详细信息,请参阅手册中的Full-Text Search Functions。