如何在 PHP 的 mysqli_query() 中转义双引号字符?
Posted
技术标签:
【中文标题】如何在 PHP 的 mysqli_query() 中转义双引号字符?【英文标题】:how to escape double quote characters in mysqli_query() in PHP? 【发布时间】: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);
?>
【问题讨论】:
【参考方案1】:试试这个代码:
$sql_update = "LOAD DATA INFILE $csv_file INTO TABLE `csv_preset` FIELDS TERMINATED BY ',' ENCLOSED BY " ESCAPED BY " 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 查询结束时,这也导致了问题以上是关于如何在 PHP 的 mysqli_query() 中转义双引号字符?的主要内容,如果未能解决你的问题,请参考以下文章
mysqli_query():在PHPUnit中测试PHP函数时无法获取mysqli
警告:mysqli_query():无法获取 mysqli [重复]