gpt4 book ai didi

php - 在使用 PHP 导入 CSV 之前如何清除表格?

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:58 25 4
gpt4 key购买 nike

我不是最熟练的开发人员,但我和我的 friend 们组队进行了一个项目,并创建了一个植物自动浇水系统。我的职责是让网站正常运行并显示系统创建的统计数据。

如何让我的代码在从 CSV 文件添加新数据之前清除表格?

这是索引页上显示的代码:

<!-- Importing the CSV -->

<div id="wrap">
<h2 class='sub-header'>Upload .csv to refresh data</h2>
<?php
include("csv.php");
$csv = new csv();
if ( isset($_POST['sub'])) {
$csv->import($_FILES['file']['tmp_name']);
}
?>

<form method="post" enctype="multipart/form-data">
<input type="file" name="file" class="btn btn-info"><br>
<input type="submit" name="sub" value="Import" class="btn btn-success">
</form>
</div>
</div>
</div>

这是 PHP 文件:

<?php
class csv extends mysqli
{
private $state_csv = false;
public function __construct()
{
parent::__construct("localhost","root","raspberry","statistics");
if ($this->connect_error) {
echo "Failed to connect to the database: ". $this->connect_error;
}
}
public function import($file)
{
$file = fopen($file, 'r');
while ($row = fgetcsv($file)) {
$value = "'". implode("','", $row) ."'";
$q = "INSERT INTO data(moisture_of_soil,temperature,humidity,light_levels,last_updated) VALUES(". $value .")";
if ( $this->query($q) ) {
$this->state_csv = true;
}else {
$this->state_csv = false;
}
}
if ($this->state_csv) {
echo "<meta http-equiv='refresh' content='0'>";
} else {
echo "Something went wrong.";
}
}
}
?>

最佳答案

TRUNCATE name 非常快速高效,但会重置所有 AUTO_INCREMENT 值。如果您有其他表通过这些标识符引用此表,这可能会出现问题,它可能会将数据链接到随机位置。

DELETE FROM name 将删除所有内容,但不会重置 AUTO_INCREMENT 计数器。它往往更慢,尤其是在存在大量争用的大型表上,但具有不回收标识符的优点。

您需要确定两者中的哪一个适合您的特定用例。对于没有引用交叉链接的表,TRUNCATE 通常效果最好。

关于php - 在使用 PHP 导入 CSV 之前如何清除表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49908020/

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