在PHP中创建要插入数据的数据库?
我正在学习php/sql/wamp,在一个学习项目中遇到了很多麻烦 我在下面有一个txt文件,我终于想出办法将它加载到php中,但是我不知道如何创建数据库sql,以便将数据插入并执行查询。。。是否有好的链接、教程或示例代码?下面是我的php和txt代码在PHP中创建要插入数据的数据库?,php,mysql,database,Php,Mysql,Database,我正在学习php/sql/wamp,在一个学习项目中遇到了很多麻烦 我在下面有一个txt文件,我终于想出办法将它加载到php中,但是我不知道如何创建数据库sql,以便将数据插入并执行查询。。。是否有好的链接、教程或示例代码?下面是我的php和txt代码 <?php error_reporting(E_ERROR); $header = '<?xml version="1.0" encoding="UTF-8"?>'."\n<datalist>"; $content
<?php
error_reporting(E_ERROR);
$header = '<?xml version="1.0" encoding="UTF-8"?>'."\n<datalist>";
$content = $header."\n".file_get_contents("data.txt")."\n</datalist>";
$ob = simplexml_load_string($content);
$json = json_encode($ob);
$array = json_decode($json, true);
$alldata = $array["pub"];
foreach ($alldata as $key => $value) { //access all data in loop
$id = $value["ID"];
$title = $value["title"];
$year = $value["year"];
$booktitle = $value["booktitle"];
$pages = $value["pages"];
$authors = implode(",", $value["authors"]["author"]);
//All process data can available here .run your sql query for insert.
}
?>
$value){//访问循环中的所有数据
$id=$value[“id”];
$title=$value[“title”];
$year=$value[“year”];
$booktitle=$value[“booktitle”];
$pages=$value[“pages”];
$authors=内爆(“,”,$value[“authors”][“author”]);
//此处可以使用所有流程数据。请运行sql查询以进行插入。
}
?>
下面是我的txt文件。。相同格式,但适用于50mb的数据
<pub>
<ID>0</ID>
<title>Regression Time Warping for Similarity Measure of Sequence</title>
<year>2004</year>
<booktitle>CIT</booktitle>
<pages>826-830</pages>
<authors>
<author>Hansheng Lei</author>
<author>Venu Govindaraju</author>
</authors>
</pub>
<pub>
<ID>1</ID>
<title>A Computational Model for Face Location Based on Cognitive Principles</title>
<year>1992</year>
<booktitle>AAAI</booktitle>
<pages>350-355</pages>
<authors>
<author>Venu Govindaraju</author>
<author>Sargur N. Srihari</author>
<author>David B. Sher</author>
</authors>
</pub>
0
序列相似性度量的回归时间扭曲
2004
CIT
826-830
雷汉生
戈文达拉朱静脉
1.
基于认知原理的人脸定位计算模型
1992
AAAI
350-355
戈文达拉朱静脉
萨尔古尔斯里哈里酒店
大卫·B·谢尔
在for循环之前,您需要连接到数据库,然后在for循环中插入从数据文件读取的每一行。你的桌子结构是什么样的?您是否尝试过自己编写任何SQL语句
连接到数据库:
插入数据库:在MySQL中创建表。然后使用mysqli(或PDO)插入数据
/**
* Connect to database
*/
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
/**
* Loop data
*/
foreach ($alldata as $key => $value) { //access all data in loop
/**
* Insert row. This assumes that your table columns are in the
* same order as the variables as they are given below
*/
$authors = implode(",", $value["authors"]["author"]);
$stmt = $mysqli->prepare("INSERT INTO your_table VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bind_param('ssssss',
$value["ID"],
$value["title"],
$value["year"],
$value["booktitle"],
$value["pages"], implode(",", $value["authors"]["author"]));
$stmt->execute();
}
从
注意,使用MySQL可以插入多个记录。(.)您可以这样做以减少插入的数量,但这会使构建查询更加复杂
还要注意的是,对这些数据使用单个表并不是最优的。理想情况下,您将使用三个表:
- 书籍=所有书籍
- 作者=所有作者
- Author\u book=一本书与其众多作者之间的关系
- 当其中一个条目包含逗号时会发生什么情况?您的代码使用逗号内爆作者列表,因此。。。 戈文达拉朱静脉 萨尔古尔斯里哈里酒店 大卫·B·谢尔博士 …成为Venu Govindaraju、Sargur N.Srihari、David B.Sher博士
- 你如何找到所有作者A和作者B所写的书?您必须创建一些过于复杂的方法来搜索数据库中的author列