gpt4 book ai didi

php - 如何使用 for 循环将数据从 csv 表插入到 sql 数据库?

转载 作者:行者123 更新时间:2023-11-30 21:56:55 25 4
gpt4 key购买 nike

这是我正在使用的示例 csv 文件:

Column1,Column2,Column3
data1,data2,data3
data1,data2,data3
data1,data2,data3
data1,data2,data3

我的程序的目的是通过命令行将此表插入到 php 文件中,并将数据插入到 SQL 数据库中。我正在使用这个项目作为学习如何使用 MySql 的一种方式。

获取一个 csv 文件,然后将数据转换为一个或多个数组。然后创建数据库并将数据插入表中。

我没有插入数据,而是只得到一行空值。

<?php

/**
* Created by PhpStorm.
* User:
* Date: 6/16/2017
* Time: 11:32 AM
*/

$servername = "localhost";
$username = "pop-user";
$password = "pop-pw";
$database = 'popdb';

parse_str(implode('&', array_slice($argv, 1)), $_GET);
$file = array_map('str_getcsv', file($argv[1]));

// connecting to MySQL
$link = mysqli_connect($servername,$username,$password);

// check if connection completed
if ($link->connect_error) {
die("Connection failed: ". $link->connect_error);
}

//creating database
printf("Creating database...\n");
$dbcheck = mysqli_select_db($link, $database);

// if database doesn't exist, then one will be created
if (!$dbcheck) {
$sql = 'CREATE DATABASE '. $database;
if (mysqli_query($link, $sql)) {
echo "Database ". $database ." created\n";
}
else {
echo "Failed to create database:\n";
echo $link->error."\n";
}
}

printf("Creating table...");
//creating table to hold information
$sql = 'USE '. $database. ';';
printf("\r\n");
mysqli_query($link,$sql);


$sql2 = "CREATE TABLE popCensus (";
foreach ($file[0] as $rows) {
if ($rows != end($file[0]))
$sql2 .= "{$rows} varchar(33), ";
else
$sql2 .= "{$rows} varchar(33)";
}
$sql2 .= ");";

echo $sql2;
printf("\r\n");
mysqli_query($link,$sql2);

printf("Inserting data into table...\n");
$cnt = 1;
$sql3 = "";
//Not inserting data
foreach ( $file as $file[$cnt]) {
$sql3 = "INSERT INTO popcensus VALUES ( ";
foreach ($file[$cnt] as $rows) {
if ($rows != end($file[$cnt]))
$sql3 .= "{$rows} , ";
else
$sql3 .= "{$rows});";
}
printf($sql3);
printf("\n");
mysqli_query($link, $sql3);
$cnt++;
printf("cnt: ". $cnt."\n");
$sql3 = "";
}

printf("\nDone\n");
mysqli_close($link);
?>

编辑:我能够将信息解析为数组的数组。我遇到的问题是之后尝试将它们插入到表格中。

最佳答案

你需要使用prepared statement循环内

关于php - 如何使用 for 循环将数据从 csv 表插入到 sql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44854137/

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