0

每当使用 PHP 导出 CSV 文件时,我都会遇到问题。我有一个 MYSQL 查询,例如

SELECT `interest_id`,`interest_name`,`interested_user_id` FROM `interest_list` WHERE `interest_name` LIKE '%fashion%'

但是每当我试图通过使用上面的 MySQL Query 导出一个 PHP 文件时,我的查询就会转向

SELECT `interest_id`,`interest_name`,`interested_user_id` FROM `interest_list` WHERE `interest_name` LIKE 'úshion%'

所以它不返回任何记录。请告诉我如何解决这个问题。在导出文件中,我编写了如下代码:

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');

//executed code

fputcsv($output, $blankArray);

现在请帮助我。

实际上,我在一个文件中进行查询,例如:

$search_sql = "SELECT `interest_id`,`interest_name`,`interested_user_id` FROM `interest_list`";

    if(isset($_REQUEST['search_user_btn'])){

        if($_REQUEST['search_intr'] != '')
$search_sql .= " WHERE `interest_name` LIKE '%".$_REQUEST['search_intr']."%' ";

    }                                                                                

然后在同一个文件中我这样写:

<a href="export.php?report=interest&qur=<?php echo $search_sql; ?>"><button>Export to CSV</button></a>

最后在export.php

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');

我正在尝试获取 $_REQUEST['qur'] 的值。但是无法得到$_REQUEST['qur']的原始值。

我认为现在它是有道理的。请帮忙....

4

1 回答 1

1

您不能在 URL 中插入随机字符串,因为 URL 中有一些具有特殊含义的字符。在 PHP 中,您可以使用rawurlencode()对 URL 参数的值进行编码。同样,出于同样的原因,您不能在 HTML 字符串中插入随机字符。

<?php

$url = 'export.php?report=interest&qur=' = rawurlencode($search_sql);

?>
<a href="<?=htmlspecialchars($url)?>"><button>Export to CSV</button></a>

不管怎样,在 URL 中传递 SQL 就是为了被黑客入侵。

于 2012-04-24T08:03:31.540 回答