php/mysql中的“where”子句从where问题中选择

php/mysql中的“where”子句从where问题中选择,php,mysql,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) =

我正在努力做到以下几点:

$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"'
除了它不起作用。。。告诉我没有这样的专栏。。。我不在任何地方存储全名,我想我不允许添加全名。。。需要帮忙吗

编辑:哎呀,这里打错了。我没有抄,所以是的。。。从句法上说,这是对的


编辑2:找到了。装置我需要放\$name\u given\除非它只是假设它是报价的一部分。。。非常感谢您回答我的措辞非常糟糕的问题。

您不是从表中进行选择,而是试图包含两个字段并从结果中进行选择,这没有任何意义

你的意思是什么?请注意对firstname和lastname的更改:

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

您不是从表中选择,而是尝试将两个字段合并并从结果中选择,这没有任何意义

你的意思是什么?请注意对firstname和lastname的更改:

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

因为您连接的是firstname和lastname,而不是first_name和last_name,请注意缺少的u

另外,请不要在查询中使用未设置范围的变量!总是逃避它:

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

因为您连接的是firstname和lastname,而不是first_name和last_name,请注意缺少的u

另外,请不要在查询中使用未设置范围的变量!总是逃避它:

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

你能告诉我哪一个更适合做保安用吗。比如filter\u var或mysql\u real\u escape\u string。Thank youfilter_var用于常规筛选,即确保电子邮件有效,但在向SQL查询传递变量时,应始终使用mysql_real_escape_字符串,无论是否已对其进行筛选。我唯一可以接受的例外是,当我将数字转换为int$var的整数时。非常感谢你,伙计。。我只是想知道为什么mysql\u real\u escape\u字符串在传递到查询之前可以过滤变量。谢谢。你能告诉我哪一个更适合做保安用吗。比如filter\u var或mysql\u real\u escape\u string。Thank youfilter_var用于常规筛选,即确保电子邮件有效,但在向SQL查询传递变量时,应始终使用mysql_real_escape_字符串,无论是否已对其进行筛选。我唯一可以接受的例外是,当我将数字转换为int$var的整数时。非常感谢你,伙计。。我只是想知道为什么mysql\u real\u escape\u字符串在传递到查询之前可以过滤变量。谢谢。是的,那是我的密码。。。请注意编辑。。。它仍然不起作用,但=XYeah,这是我的代码。。。请注意编辑。。。但是它仍然不起作用=x给定$name\u中存储的值是多少?我的意思是$name\u gived是您的全名或其他类似的名字或姓氏..?name\u gived是您要查找的名字,所以像David或john maximillian dewey或max mcfightmaster之类…$name\u gived中存储了什么值?我的意思是$name_是你的全名或其他类似名字或姓氏的东西。name_是你要找的名字,所以像David或john maximillian dewey或max mcfightmaster之类。。。