我有一个表单,可以在数据库中搜索结果。结果由两列组成。 我正在尝试CONCAT它们,以便让它搜索这两列中的结果。一旦找到它,我希望它打印出那一行。
我的错误是:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'WHERE CONCAT(类型,'',标识符)=库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());
}
?>
答案 0 :(得分:2)
您的SQL需要一个FROM子句。虽然mysql支持“SELECT”,但它不支持WHERE子句。
答案 1 :(得分:1)
尝试替换为:
SELECT CONCAT(Type,' ',Identifier) as srcqry FROM TableName WHERE CONCAT(Type,' ',Identifier) = '$term'
即。使用FROM
子句和'
围绕$term
添加表名。
但正如@Jack Maney指出的那样,您的代码很容易受到SQL注入攻击。