【问题标题】:how to escape double quote characters in mysqli_query() in PHP?如何在 PHP 的 mysqli_query() 中转义双引号字符?
【发布时间】:2014-11-10 00:15:50
【问题描述】:

我正在尝试使用 CSV 文件更新 mysql 数据库。

我有这个查询在 phpmyadmin 中工作

LOAD DATA INFILE 'C:/wamp/www/website/test_mysql_import.csv' INTO TABLE `csv_preset` FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\n'    

但是当我尝试在 mysqli_query 函数中使用它时,它不会更新数据库。

这是完整的代码块:

<?php require "db_connect.php"; ?>    
    <?php
    $csv_file = "C:/wamp/www/website/test_mysql_import.csv";

    $sql_dump ="TRUNCATE TABLE csv_preset";
    $sql_update = "LOAD DATA INFILE '$csv_file' INTO TABLE `csv_preset` FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\n'");
    mysqli_query($db_conx, $sql_dump);
    mysqli_query($db_conx, $sql_update);
?>    

【问题讨论】:

    标签: php mysql sql csv phpmyadmin


    【解决方案1】:

    试试这个代码:

            $sql_update = "LOAD DATA INFILE $csv_file INTO TABLE `csv_preset` FIELDS TERMINATED BY ',' ENCLOSED BY &quot; ESCAPED BY &quot; LINES TERMINATED BY \\n";
    

    你的变量不需要单引号,因为它已经是双引号了。双引号可以用htmlcode 转义,换行用“\”。

    【讨论】:

      【解决方案2】:
      <?php require "db_connect.php"; ?>    
          <?php
          $csv_file = "C:/wamp/www/website/test_mysql_import.csv";
      
          $sql_dump ="TRUNCATE TABLE csv_preset";
          $sql_update = "LOAD DATA INFILE '".$csv_file."' INTO TABLE `csv_preset` FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\n'");
          mysqli_query($db_conx, $sql_dump);
          mysqli_query($db_conx, $sql_update);
      ?> 
      

      【讨论】:

      • 工作@Macbernie 谢谢分配,我实际上忘记添加一个 ;在 $sql_dump 查询结束时,这也导致了问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多