gpt4 book ai didi

php - 如果我下载它,mysql会给出不同的结果

转载 作者:行者123 更新时间:2023-11-29 14:02:42 25 4
gpt4 key购买 nike

我正在使用 PHP 和 MySQL 来运行查询,我编写了两个具有相同查询的脚本,但一个用于在浏览器上显示查询结果,另一个用于将查询结果下载为文件。即使它是相同的查询,它在下载时给出不同的结果,这是不正确的。例如,我的查询是

$query="select * from tf where gene_symbol like '%$sterm%' || gene_name like '%$sterm%' || synonym like '%$sterm%'";

如果$stermZINC FINGER PROTEIN,它在mysql命令行和显示上都会给出685条记录。但是,如果我下载该文件,它会通过添加记录 wheregene_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);
?>

最佳答案

我想我已经解决了这个问题首先删除文件下载部分,只在屏幕上打印查询。我看到变量从“锌指蛋白”被截断为“锌”。我猜想是在 post 方法中的一些东西。然后我在 $sterm 上使用单引号,同时在 post 方法中传递它就像 value= '$sterm' 并且它有效。这是我用来传递变量的脚本:

echo "<table width='100%'><tr><td><strong>Click on column headers to sort; * dbTF = DNA binding Transcription Factor</strong></td> <td> 
<form action='search/download-search' method='post' >
<input type='hidden' name='sterm' value= '$sterm' >
<input type='submit' value='Download now'>
</form>
</td> </tr>
</table>";

我的想法是多么愚蠢——一个查询给出了不同的结果:(感谢您的建议!

关于php - 如果我下载它,mysql会给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14830218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com