Php 将多个like语句分组
我是SQL新手,似乎无法将多个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
类似的语句组合在一起。知道我做错了什么吗
$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);