-1

我有一个在数据库中搜索结果的表单。结果由两列组成。我正在尝试连接它们,以便让它在这两个列中搜索结果。一旦找到它,我希望它打印出该行。

我的错误是:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'WHERE CONCAT(Type,' ',Identifier) = Library 110' 附近使用正确的语法。

<?php 
$link = mysql_connect('localhost', 'root', 'root') or die (mysql_error());
$db_selected = mysql_select_db ('test',$link);

$term = $_POST['term'];
if ($sql = mysql_query ("SELECT CONCAT(Type,' ',Identifier) as srcqry WHERE CONCAT(Type,' ',Identifier) = $term "))
{   
while ($row = mysql_fetch_assoc($sql)){
    echo '<br/> Location: '.$row['Location'];
    echo '<br/> Section: '.$row['Section'];
    echo '<br/> Identifier: '.$row['Type']. ' ' .$row['Identifier'];
    echo '<br/><br/>';
    }
}
else 
{
echo die(mysql_error());
}
?>
4

2 回答 2

2

您的 SQL 需要一个 FROM 子句。尽管 mysql 支持“SELECT”,但它不支持 WHERE 子句。

于 2012-07-09T15:50:47.897 回答
1

尝试替换为:

SELECT CONCAT(Type,' ',Identifier) as srcqry FROM TableName WHERE CONCAT(Type,' ',Identifier) = '$term'

IE。添加带有FROM子句和'周围的表名$term

然而,正如@Jack Maney所指出的,您的代码容易受到 SQL 注入的攻击。

于 2012-07-09T15:47:09.560 回答