我有一個我在Wordpress中編寫的php函數。我在與我的插件功能相同的文件夾中獲取CSV文件並嘗試將其輸入到數據庫。將CSV文件轉換爲Mysql數據庫PHP
我在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
你居然打電話給你函數在任何地方?我看到的函數定義,但不是實際的函數調用 – Lock
所以你說你已經證實除了drop table之外的其他所有工作嗎? – tokamak
是的我在調用函數,它甚至打印出字符串在函數結束時告訴我所有的數據都已經輸入到數據庫中但它沒有工作沒有任何工作當沒有錯誤的文件路徑等它告訴我然後我修復它然後它顯示了函數結尾的字符串I echo但沒有成功。 – wuno