【问题标题】:How to use textfile to create SQL table entries?如何使用文本文件创建 SQL 表条目?
【发布时间】:2015-10-27 21:42:46
【问题描述】:

我有一个如下所示的文本文件:

WPG GRIFFON, WIREHAIRED 
AFG HOUND, AFGHAN 
IBI HOUND, IBIZAN 
WOF HOUND, IRISH WOLF 
OTT HOUND, OTTER 
PHA HOUND, PHAROAH 
DER HOUND, SCOTTISH DEER 
JIN JINDO 
...

我正在尝试重写这行代码,让它说出狗的名字

$link = mysqli_connect($servername, $username, $password, $db) or die(mysqli_error($link));

mysqli_query($link, "CREATE TABLE IF NOT EXISTS `description` (`descID` int(10) NOT NULL AUTO_INCREMENT, `desc` text NOT NULL, PRIMARY KEY (`descID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;");

mysqli_query($link, "INSERT INTO description (descID, desc) VALUES(1, 'description 1'),(2, 'description 2'),(3, 'description 3') ,(4, '描述 4');");

但是,我总是收到错误消息,导致网页崩溃,因为我无法读取和保存文件。

$handle = @fopen("names.txt", "r");
while (!feof($handle)) // Loop til end of file.
{
$buffer = fgets($handle, 4096);

$sql = "INSERT INTO data_table ...."  
mysql_query($sql,$conn) or die(mysql_error());
}

【问题讨论】:

  • 愿意与我们分享错误信息吗?
  • 添加这个if ( mysqli_query($link, _CREATE TABLE IF NOT EXISTS description` (descID int(10) NOT NULL AUTO_INCREMENT, desc text NOT NULL, PRIMARY KEY (descID)) ENGINE=InnoDB DEFAULT CHARSET=utf8; ") === false ) echo mysqli_error($link);_ 获取生成的错误信息!'
  • 在查询周围添加 if 语句,例如 if ( mysqli_query($link ... ) === false ) echo mysqli_error( $link);` (不能在 cmets 中使用撇号)
  • 没有具体的错误信息,我正在尝试编写一行代码来打开文本文件,读取这些行,然后生成一个mysqli_query($link, "INSERT INTO description` (descID, desc ) VALUES(1, 'description 1'),(2, 'description 2'),(3, 'description 3'),(4, 'description 4');");` 为mysqli_query($link, "INSERT INTO description` ( descID, desc) 值(1, 'WPG 格里芬, WIREHAIRED'),(2, 'AFG HOUND, AFGHAN),(3, 'IBI HOUND, IBIZAN'),(4, 'WOF HOUND, IRISH WOLF ');");`
  • 没有错误信息,我只能说你的网页正在崩溃,所以你应该让它不会崩溃

标签: php mysql database web crash-reports


【解决方案1】:

需要使用INSERT 语句吗?还有另外两个非常可行的选择(可能有点开箱即用):

  1. LOAD DATA:将预先构建的 CSV 数据加载到表中的 SQL。见the MySQL manualthis SO thread

示例用法(来自链接的 SO 线程):

LOAD DATA INFILE 'path/file.csv'
INTO TABLE tbl_name 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
(column1, column2, column3);
  1. mysqlimport:如果您有权访问 MySql shell,您可以使用它来将物理 CSV 导入数据库。见the MySQL manualthis post from a random google click

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-25
    • 2020-11-23
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    相关资源
    最近更新 更多