Php Mysqli在多个字段中搜索值
我正在尝试找出如何搜索可能位于Field1、Field2或Field3中的Value1。我知道我的语法是错误的,因为它显然不起作用,但这里是我的破解: $query=SELECT* 来自表1 WHERE city=“$city” 和state='$state' 和位置=“$location” field1='$field1U'或field1='$field2U'或field1='$field3U' 订单截止日期_创建限额5; $data=mysqli_query$dbc$query;Php Mysqli在多个字段中搜索值,php,mysql,Php,Mysql,我正在尝试找出如何搜索可能位于Field1、Field2或Field3中的Value1。我知道我的语法是错误的,因为它显然不起作用,但这里是我的破解: $query=SELECT* 来自表1 WHERE city=“$city” 和state='$state' 和位置=“$location” field1='$field1U'或field1='$field2U'或field1='$field3U' 订单截止日期_创建限额5; $data=mysqli_query$dbc$query; 我想也许我
我想也许我可以在1,2,3中使用where field1,但我无法让它工作。如果您想在以下位置查找所有记录,将不胜感激。: field1=someValue 或字段2=someValue 或字段3=someValue 然后你可以使用这个:
$query = "SELECT * FROM table1 WHERE city = '$city' AND state = '$state' AND location = '$location' AND (field1 = '$Value1' OR field2 = '$Value1' OR field3 = '$Value1') ORDER BY date_created LIMIT 5";
$data = mysqli_query($dbc, $query);
替换
AND (field1 = '$field1U' OR field1 = '$field2U' OR field1 = '$field3U')
与
注意,我正在搜索field1、field2或field3
但是求求你,求求你,求求你!!避开那些$search字符串!例如:
$search = mysqli_real_escape_string($link, $search)
其中$link是使用
$link = mysqli_connect(...)
请参阅
这用于防止SQL注入https://en.wikipedia.org/wiki/SQL_injection
哦,试着把文本从变量中分离出来,我个人认为这是更安全更好的编码方式。对于您的用例:
AND (field1 = '" . $search . "' OR field2 = '" . $search . "' OR field3 = '" . $search . "')
$search设置为什么,如果这是一个愚蠢的问题,很抱歉。数据是从一个表中提取的,其中字段已经转义了,我想应该可以吧?$search是您问题中的值1。在数据库中不需要转义值,但在查询中需要转义值。阅读维基百科上的SQL注入。
AND (field1 = '" . $search . "' OR field2 = '" . $search . "' OR field3 = '" . $search . "')