查询的语法帮助

时间:2012-11-08 03:06:02

标签: php database mysqli

我正在尝试查询我的MySQL数据库以获取有关用户的信息。您在上一页上提交表单,然后进入页面并连接到数据库和所有好东西。我只是对查询的SELECT函数的语法有一个快速的问题。我试图说“从tbl_name中选择字段名字与字段姓氏连接(中间有空格)等于变量$ user。

我想用PHP我需要在引号前加斜杠。它似乎没有返回任何值。我只是使用了错误的语法吗?

$user=$mysqli->real_escape_string($_POST['user']);

$sql="SELECT * FROM tbl_name WHERE firstname.\" \".lastname='$user'";

2 个答案:

答案 0 :(得分:1)

我认为这就是你要找的东西?

$sql = 'SELECT * FROM '.$tbl_name .' WHERE CONCAT(firstname," ",lastname )='.$user.' ';

答案 1 :(得分:1)

您必须在CONCAT()子句中使用SQL的WHEREfirstnamelastname列加在一起:

SELECT
    *
FROM
    tbl_name
WHERE
    CONCAT(firstname. ' ', lastname) = ?

使用PHP中的现有代码(用于复制+粘贴):

$sql = "SELECT * FROM tbl_name WHERE CONCAT(firstname, ' ', lastname) = '" . $user . "'";

*另外值得注意的是:既然你正在使用MySQL,你可以合法地在查询中使用单引号和/或双引号作为字符串(T-SQL绑定到字符串的单引号)。因此,如果您在PHP中使用双引号包装整个查询,则可以在SQL查询中使用单引号,而不必转义双引号。这更像是一个程序员偏好的提示,但有一天可能会为你节省报价 - 逃避头痛= P