gpt4 book ai didi

php - 将 CSV 文件转换为 Mysql 数据库 PHP

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

我有一个在 WordPress 中编写的 php 函数。我将一个 CSV 文件放在与我的插件功能相同的文件夹中,并尝试将其输入数据库。

我在 wp-config.php 中启用了错误报告以及我自己的 php

我收到一条错误消息。

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'wuno_inventory' already exists

我的代码确实删除了表并创建了它。分别和一起进行了测试。一旦我开始导入 csv 文件部分,什么也不会发生。

所以我的代码正在被读取,但显然没有执行。

任何想法将不胜感激。非常感谢。

function productsExec() {
$hostname='localhost';
$username='username';
$password='password';
$database='databaseName';
$table_name = "wuno_inventory";
// path where your CSV file is located
define('CSV_PATH','');
// Name of your CSV file
$csv_file = CSV_PATH . "inventory.csv";

try {
$dbh = new PDO("mysql:host=$hostname;dbname=$database",$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "DROP TABLE IF EXISTS $table_name";
$dbh->query($sql);

$sql = "CREATE TABLE " . $table_name . " (
id int(8) NOT NULL AUTO_INCREMENT,
wuno_product varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
wuno_description varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
wuno_alternates varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
wuno_onhand varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
wuno_condition varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;";
$dbh->query($sql);

if (($handle = fopen($csv_file, "r")) !== FALSE) {
fgetcsv($handle);
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
$col[$c] = $data[$c];
}

$col1 = $col[0];
$col2 = $col[1];
$col3 = $col[2];
$col4 = $col[3];
$col5 = $col[4];

// SQL Query to insert data into DataBase
$query = "INSERT INTO " . $table_name . "(wuno_product, wuno_description, wuno_alternates, wuno_onhand, wuno_condition)
VALUES('".$col1."','".$col2."','".$col3."','".$col4."','".$col5."')";
$results = $dbh->query( $query );
}
fclose($handle);
}
if ($dbh->query($sql)) {
echo "<script type= 'text/javascript'>alert('New Record Inserted Successfully');</script>";
}
else{
echo "<script type= 'text/javascript'>alert('Data not successfully Inserted.');</script>";
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}

csv 文件

Product,Description,Alternates,Onhand,Condition
8855K5,,MS21026-B211,12,12
M39029/5-117,,,13,13
Q4559,,PROD CODE: 40579,1,1
,,40579,,
RESTOCKING CHARGE,,,1,1
TAS8732-1C2,,,7,7
TEST REPORTS,,,6,6

以及Excel版本 enter image description here

最佳答案

我从您尝试过的注释掉的代码中获取它 wpdb->query($sql); ??

编辑:

在 $sql 查询字符串末尾添加分号:)

$sql = "DROP TABLE IF EXISTS $table_name;"; // see the ; inside the quotes

还有

$query = "INSERT INTO " . $table_name . " (wuno_product, wuno_description, wuno_alternates, wuno_onhand, wuno_condition) 
VALUES('".$col1."','".$col2."','".$col3."','".$col4."','".$col5."');";

//添加倒数第三个字符: ;引号内,“(”前有空格

最后,据我所知, $col4 和 $col5 未定义,因此这可能会导致整个查询无法工作。

关于php - 将 CSV 文件转换为 Mysql 数据库 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329842/

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