gpt4 book ai didi

php - PHP 脚本中的 MySQL_Query 错误

转载 作者:太空宇宙 更新时间:2023-11-03 11:13:39 25 4
gpt4 key购买 nike

我的目标是循环遍历目录中的所有 .CSV 文件并为每个文件运行此脚本,以便将数据附加到数据库中。问题源于我在下面插入循环时。我已经编译了一个 PHP 脚本,在将单个 .CSV 文件读入我的 MySQL 数据库时,该脚本可以完美运行。尽管如此,在将导入脚本插入循环后调用 mysql_query 函数时出现以下错误:无法通过套接字“/tmp/mysql.sock”连接到本地 MySQL 服务器 (2)

$con = @mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
@mysql_select_db($databasename) or die(mysql_error());

//CLEAR old contents from table
$queryDelete = "delete from $databasetable;";
$resultDelete = @mysql_query($queryDelete) or die("Error clearing table of old data: $query<br />" . mysql_error());

//READ directory for CSV files
//path to directory to scan IF NOT IN SAME FOLDER
$directory = "../data/";
//get all files IN CURRENT DIRECTORY with a .csv extension OTHERWISE add $csvfiles = glob($directory . "*.csv");
$csvfiles = glob("*.csv");
$numCSVFiles = count($csvfiles);

//Grab each CSV file and import to DB
for ($i = 0; $i < $numCSVFiles; $i++) {

$csvfile = $csvfiles[$i];

//TEST FILES
if(!file_exists($csvfile)) {
echo "File (" . $csvfile . ") not found. Make sure you specified the correct path.\n";
exit;
}
$file = fopen($csvfile,"r");

if(!$file) {
echo "Error opening data file.\n";
exit;
}
$size = filesize($csvfile);

if(!$size) {
echo "File is empty.\n";
exit;
}
$csvcontent = fread($file,$size);
fclose($file);

$lines = 0;
$queries = "";
$linearray = array();

foreach(split($lineseparator,$csvcontent) as $line) {

$lines++;
$line = trim($line," \t");
$line = str_replace("\r","",$line);

/************************************
This line escapes the special character. remove it if entries are already escaped in the csv file
************************************/
//$line = str_replace("'","\'",$line);
/*************************************/

$linearray = explode($fieldseparator,$line);
$linemysql = implode("','",$linearray);

if($addauto == 1)
$query = "insert into $databasetable values('','$linemysql');";
else
$query = "insert into $databasetable values('$linemysql');";

$queries .= $query . "\n<br />";
//THIS IS WHERE THE ERROR OCCURS WHILE RUNNING INSIDE THE LOOP
$result = @mysql_query($query) or die("Error 1: " . mysql_error() . "<br />Query Attempted: " . $query);

if(!$result) { $resultText = "Failure to execute MySQL queries. Please try again later."; } else { $resultText = "Successfully executed queries."; }
}

@mysql_close($con) or die("Error 2: " . mysql_error());

//LOG mysql queries
if($save) {
if(!is_writable($outputfile)) {
echo "File is not writable, check permissions.\n";
}
else {
$file2 = fopen($outputfile,"w");
if(!$file2) {
echo "Error writing to the output file.\n";
}
else {
fwrite($file2,$queries);
fclose($file2);
}
}
}
}

最佳答案

您正在循环中执行 mysql_close(),因此在插入第一个文件后,您会终止数据库连接,然后尝试插入下一个文件。

如果您的代码缩进正确,您就会遇到这个问题。

关于php - PHP 脚本中的 MySQL_Query 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6778632/

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