【问题标题】:How to use into out file query in Amazon RDS如何在 Amazon RDS 中使用 in out 文件查询
【发布时间】:2016-11-02 09:41:16
【问题描述】:

我正在尝试从数据库中导入 CSV。我的查询在我的本地主机上运行良好。现在我正在使用 Amazon RDS 服务器,但它无法正常工作;有没有办法在 Amazon RDS 用户权限中授予文件权限?

我目前的查询是这样的:

$path = getcwd() . '/uploads/data.csv' ;
    $sql = "SELECT 'Name', 'Email', 'Type of inquiry' , 'Message'
            UNION ALL
            SELECT `engine4_mytable_contacts`.name ,
            `engine4_mytable_contacts`.email, 
            `engine4_mytable_contacts`.topic,
            `engine4_mytable_contacts`.feed_back
            FROM engine4_mytable_contacts WHERE contact_date >= '$prevDate' into outfile '$path' FIELDS TERMINATED BY ','   ENCLOSED BY '\"'  LINES TERMINATED BY '\n\r'";

$result = $connection->prepare($sql);
$result->execute();

如何使用 PHP 运行此查询?

【问题讨论】:

  • 停止连接 SQL 查询中的变量。访问lampheap.com/prevent-sql-injection,防止SQL注入。
  • 好的,谢谢,但我正在寻找从亚马逊 rds 数据库导出的方法,请帮助
  • 请向我们展示您编写的 PHP 代码。
  • 好的,我已经添加了在本地主机上运行此查询
  • RDS 不支持 INFILE/OUTFILE 语句。请阅读这个问题。 stackoverflow.com/questions/33007523/…

标签: php mysql database amazon-rds


【解决方案1】:

我发现使用 php 执行此操作的唯一解决方案是这样的:

$sql = "SELECT `engine4_mytbl_contacts`.name ,
        `engine4_mytbl_contacts`.email, 
        `engine4_mytbl_contacts`.topic,
        `engine4_mytbl_contacts`.feed_back
        FROM engine4_mytbl_contacts WHERE contact_date >= '$prevDate'";

        $result = $db->prepare($sql);
        $result->execute();
        $rows = $result->fetchAll(PDO::FETCH_OBJ);
        $file = fopen($path, "w"); // this will open the file and erase all datas
        foreach($rows as $val){
            $array = array($val->name,$val->email,$val->topic,$val->feed_back);
            fputcsv($file,$array);
        }

【讨论】:

    猜你喜欢
    • 2017-07-23
    • 1970-01-01
    • 2017-08-15
    • 2020-09-01
    • 2019-02-21
    • 2014-05-26
    • 2020-10-03
    • 2019-06-08
    • 1970-01-01
    相关资源
    最近更新 更多