0
我使用PHP和MySQL運行一個查詢,我已經寫有相同的查詢兩個劇本,而是一個有關瀏覽器顯示的查詢結果和其他下載查詢結果作爲文件。即使它是相同的查詢,它在下載時給出不同的結果,這是不正確的。 我的例如查詢mysql的給不同的結果,如果我下載它
$query="select * from tf where gene_symbol like '%$sterm%' || gene_name like '%$sterm%' || synonym like '%$sterm%'";
如果$sterm
是鋅指蛋白,它給雙方在mysql命令行,顯示685條記錄。但是,如果我下載文件時,它通過添加甚至記錄where gene_name like '%ZINC FINGER%'
沒有人有任何想法,這可能是導致它給大約800記錄。 在此先感謝。 柯尼卡
下面是下載文件
<?php
$sterm = $_POST["sterm"];
$sterm = strtoupper($sterm);
$query = "select * from tf where gene_symbol like '%$sterm%' || gene_name like '%$sterm%' || synonym like '%$sterm%'";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) > 0) {
result_disp($result);
}
function result_disp($results)
{
$num_fields = mysql_num_fields($results);
$headers = array();
for ($i = 0; $i < $num_fields; $i++) {
$headers[] = mysql_field_name($results, $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $results) {
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="export.txt"');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers, chr(9));
while ($rows = mysql_fetch_row($results)) {
fputcsv($fp, array_values($rows), chr(9));
}
die;
}
}
fclose($fp);
?>
是否使用完全相同的SQL查詢!在這兩個文件中?沒有額外的like子句? – Husman 2013-02-12 10:30:01
請確保'$ sterm'是你期望的。 – SparKot 2013-02-12 10:32:53
修改你的查詢..'$ query =「select * from tf where gene_symbol like'%」。$ sterm。「 %'|| gene_name like'「。%$ sterm%。」'|| synonym like'「。%$ sterm%。」'「;' – 2013-02-12 10:35:44