Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysqli在多个字段中搜索值_Php_Mysql - Fatal编程技术网

Php Mysqli在多个字段中搜索值

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; 我想也许我

我正在尝试找出如何搜索可能位于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 . "')