gpt4 book ai didi

php - 转义mysql查询中的单引号数据

转载 作者:行者123 更新时间:2023-11-29 11:24:45 30 4
gpt4 key购买 nike

我有一个愚蠢的问题。我正在尝试将批量数据从 csv 文件上传到我的数据库表。它运行良好。但我注意到 csv 文件中的许多行都包含单引号中的数据,例如(That's、It's 等)。数据库中单引号查询的任何位置都会引发语法错误。我看到很多帖子建议保留像这样的单引号数据 (That's),但我有超过 1000 行,所以我无法检查每一行。有没有任何编程方法可以避免这个问题?

<?php

include "connection.php"; //Connect to Database

$deleterecords = "TRUNCATE TABLE tablename"; //empty the table of its current records
mysql_query($deleterecords);

//Upload File
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>";
echo "<h2>Displaying contents:</h2>";
readfile($_FILES['filename']['tmp_name']);
}

//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$import="";
mysql_query($import) or die(mysql_error());
}

fclose($handle);

print "Import done";

print ""

//view upload form
}else {

print "<h1>Upload new CSV</h1><br />\n";

print "<form enctype='multipart/form-data' action='upload.php' method='post'>";

print "File name to import:<br />\n";

print "<input size='50' type='file' name='filename'><br />\n";

print "<input type='submit' name='submit' value='Upload'></form>";

}

?>

最佳答案

首先,您需要停止使用 mysql_* 函数,因为它在 php 7.0 上被省略,而是使用 mysqli_* 或 PDO

您可以使用addslashes()添加反斜杠来转义单引号和双引号,或者因为您要插入数据库,所以需要使用mysql_real_escape_string()

mysql_real_escape_string($import);

关于php - 转义mysql查询中的单引号数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38428741/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com