Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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
使用mysql和php搜索整个表(日期字段除外)_Php_Mysql - Fatal编程技术网

使用mysql和php搜索整个表(日期字段除外)

使用mysql和php搜索整个表(日期字段除外),php,mysql,Php,Mysql,我有一个很大的表,希望一次搜索所有字段,但有些字段是日期,因此我创建的搜索在遇到这些字段时会失败 使用这种类型的搜索时,是否有方法排除某些类型的字段 $table = 'accounts'; $condition = 'tracey'; $sql = "SHOW COLUMNS FROM accounts"; $result = mysqli_query($mysqli,$sql); if (mysqli_num_rows($result) > 0) { $i=0;

我有一个很大的表,希望一次搜索所有字段,但有些字段是日期,因此我创建的搜索在遇到这些字段时会失败

使用这种类型的搜索时,是否有方法排除某些类型的字段

$table = 'accounts';
$condition = 'tracey';

$sql = "SHOW COLUMNS FROM accounts";

$result = mysqli_query($mysqli,$sql);

if (mysqli_num_rows($result) > 0)
{
    $i=0;
    while ($row = mysqli_fetch_array($result))
    {
        if($i==0)
        {
            $q="select * from ".$table." where ".$row[0]." LIKE %".$condition."%";
        }
        else
        {
            $q.=" or ".$row[0]."="." LIKE %".$condition."%";
        }
        $i++;
    }
}

$sql = $q;
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
$row = mysqli_fetch_array($result);
$answer = $row['phone_office'];
echo '<br><br>answer = '.$answer;
$table='accounts';
$condition='tracey';
$sql=“显示帐户中的列”;
$result=mysqli\u查询($mysqli,$sql);
如果(mysqli_num_行($result)>0)
{
$i=0;
while($row=mysqli\u fetch\u数组($result))
{
如果($i==0)
{
$q=“从“$table.”中选择*,其中“$row[0]”类似“%”,“$condition.”%”;
}
其他的
{
$q.=”或“$row[0]”或“=”“LIKE%.”$condition.“%”;
}
$i++;
}
}
$sql=$q;
$result=mysqli_query($mysqli,$sql)或die(mysqli_error($mysqli));
$row=mysqli\u fetch\u数组($result);
$answer=$row['phone_office'];
回显“

答案=”。$answer;

或者,也许有人可以建议一种更好的方法,一次搜索表中的所有字段?

要排除某些类型的字段,您需要使用以下方法更改查询
显示帐户中的列:

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS 
WHERE (table_name=".$table.")AND(NOT(DATA_TYPE IN ('field_type_1','field_type_2',...)));

其中,
field\u type\u i
是排除类型的名称(例如,
'timestamp'

此链接可能对您很有帮助,但我得到一个未知列accounts的错误。accounts是表名