php / mysql中的“where”子句select-from-where问题

时间:2011-06-29 19:23:00

标签: php mysql

我正在尝试执行以下操作:

$query = 'Select first_name, last_name , user_name FROM table1 WHERE fullname = "$name_given"'

其中fullname是first_name +''+ last_name所以它不应该是:

$query = 'Select first_name, last_name FROM table1 WHERE concat(first_name, ' ', last_name) = "name_given"'

除了它不起作用...告诉我没有像这样的列...我不会在任何地方存储全名(我不认为我可以添加它)。 ..请帮忙吗?

编辑:糟糕,输入错误。我没有复制它所以是的...语法上它是正确的......

EDIT2:发现它。 Apparnelty我需要加上“$ name_given \”,除非它只是假设它是引用的一部分...非常感谢你回答我措辞很差的问题。

2 个答案:

答案 0 :(得分:6)

因为您要连接firstnamelastname,而不是first_namelast_name(请注意缺少的_)。

另外,请不要在查询中使用未转义的变量!总是逃避它:

$query = "select ... where concat(first_name, ' ', last_name) = '"
    . mysql_real_escape_string($name) . '"';

答案 1 :(得分:3)

你没有从表中选择,你试图连接两个字段并从结果中选择,这没有任何意义。

你的意思是什么(注意对名字和姓氏的更改):

$query = 'Select first_name, last_name FROM YourTable WHERE concat(first_name, ' ', last_name) = "name_given"'