CONCAT和SQL查询

时间:2012-07-09 15:38:08

标签: mysql sql

我有一个表单,可以在数据库中搜索结果。结果由两列组成。 我正在尝试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());
}
?>

2 个答案:

答案 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注入攻击。