每当使用 PHP 导出 CSV 文件时,我都遇到了问题。我有一个像 MYSQL 查询
SELECT `interest_id`,`interest_name`,`interested_user_id` FROM `interest_list` WHERE `interest_name` LIKE '%fashion%'
但是每当我尝试使用上述MySQL查询导出一个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>
最后在出口中.php
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
我试图获得 $_REQUEST['qur'] 的价值。但无法获得_REQUEST['古兰德']的原始价值。
我认为现在这是有道理的。请帮忙....
不能在 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都是被黑客入侵的调用。