Php 将多个like语句分组

Php 将多个like语句分组,php,mysql,Php,Mysql,我是SQL新手,似乎无法将多个类似的语句组合在一起。知道我做错了什么吗 $query = mysqli_query($mysqli, "SELECT * FROM table_name WHERE Page LIKE ".$page." AND Profession LIKE ".$profession.", AND Age LIKE ".$age.""); 谢谢。可能是因为没有正确地附上 $query = mysqli

我是SQL新手,似乎无法将多个
类似的
语句组合在一起。知道我做错了什么吗

$query = mysqli_query($mysqli, "SELECT * FROM table_name
            WHERE Page LIKE ".$page."
            AND Profession LIKE ".$profession.", 
            AND Age LIKE ".$age."");

谢谢。

可能是因为没有正确地附上

$query = mysqli_query($mysqli, "SELECT * FROM table_name
            WHERE Page LIKE ".$page."
            AND Profession LIKE ".$profession."
            AND Age LIKE ".$age."");
编译时

SELECT * FROM table_name
            WHERE Page LIKE page number 1
            AND Profession LIKE my profession
            AND Age LIKE 100
这是无效的SQL

您需要使用引号并转义这些值

$query = mysqli_query($mysqli, "SELECT * FROM table_name
            WHERE Page LIKE '%".$page."%'
            AND Profession LIKE '%".$profession."%'
            AND Age LIKE '%".$age."%'");
会给

SELECT * FROM table_name
            WHERE Page LIKE '%page number 1%'
            AND Profession LIKE '%my profession%'
            AND Age LIKE '%100%'
这可能会给你带来你所期望的结果

确保这些值是安全的,但至少使用准备好的语句是更好的选择

编辑:


删除“$profession”等
后面的逗号。

如果使用占位符和:


$page
$profession
$age
中的值是什么?出了什么问题?是否有错误或结果有误?请使用单引号“$page.”“$profession.”“$age.”使用
mysqli
时,应使用参数化查询,并将用户数据添加到查询中。不要使用字符串插值来完成此操作,因为这样会创建严重的错误。您不必担心引用问题。当您创建这样的查询时,没有绑定,使用mysqli有什么意义呢?效果很好,但速度似乎很慢。查询一个10行的列大约需要2秒钟。
$stmt = mysqli_query($mysqli, "SELECT * FROM table_name
            WHERE Page LIKE ?
            AND Profession LIKE ?
            AND Age=?");

mysqli_stmt_bind_param($stmt, 'ssi', "%" . $page . "%", "%" . $profession. "%", $age);

mysqli_stmt_execute($stmt);