php MySQL csv output with WHERE LIKE %%


php MySQL csv output with WHERE LIKE %%

<?php
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
fputcsv($output, array('field1', 'field2', 'field3'));
mysql_connect('localhost', 'root', '');
mysql_select_db('test');
$rows = mysql_query('SELECT field1,field2,field3 from table');
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row);
?>

是工作,但如何在结果中使用"其中字段 1 像 %%">

我不确定我是否完全理解了这个问题。

如果要查询数据库并从返回的结果生成 csv,其中 csv 中的每一行都有 field1 like [something],那么最好直接在查询中包含条件:

$queryStr = "select field1, field2, field3 from table where field1 like '%something%'";
$rows = mysql_query($queryStr);
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row);

这样,您就不会返回超出需要的信息。

除此之外,mysql_* 函数已被弃用,使用 mysqli 可能是个好主意。

$rows = mysql_query("SELECT field1,field2,field3 from table where field1 like '%something%'");

取代

$rows = mysql_query("SELECT field1,field2,field3 from table where field1 like 'something%'");

只需先删除 %

终于工作了

<?php
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
fputcsv($output, array('field1', 'field2', 'field3'));
mysql_connect('localhost', 'root', '');
mysql_select_db('test');
$rows = mysql_query("SELECT field1,field2,field3 from table where field1 like 'something%'");
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row);
?>