0

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

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

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

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

2 回答 2

1

我想这就是你要找的东西??

$sql = 'SELECT * FROM '.$tbl_name .' WHERE CONCAT(firstname," ",lastname )='.$user.' ';
于 2012-11-08T03:22:59.763 回答
1

您必须CONCAT()WHERE子句中使用 SQL 将firstnamelastname列连接在一起:

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

于 2012-11-08T03:45:41.453 回答