gpt4 book ai didi

php - 如何将每个结果添加到 MySQL 中的表中

转载 作者:行者123 更新时间:2023-11-29 10:33:19 26 4
gpt4 key购买 nike

我有一个 php 文件(带有 simple_HTML_Dom),它可以抓取 CSV 文件的所有 URL。

他提取了我需要的所有信息,一切都OK,但现在我想将所有这些结果添加到我的 MySQL 表中。

我希望每个结果都添加到 MySQL 表中的一行中。

这是我到目前为止的代码:

    <?php

require 'libs/simple_html_dom/simple_html_dom.php';
set_time_limit(0);



function scrapUrl($url)
{

$html = new simple_html_dom();

$html->load_file($url);


$names = $html->find('h1');
$manufacturers = $html->find('h2');


foreach ($names as $name) {
echo $name->innertext;
echo '<br>';
}
foreach ($manufacturers as $manufacturer) {
echo $manufacturer->innertext;
echo '<br>';
echo '<hr><br>';
}


}

$rutaCSV = 'csv/urls1.csv'; // Ruta del csv.

$csv = array_map('str_getcsv', file($rutaCSV));

//print_r($csv); // Verás que es un array donde cada elemento es array con una de las url.

foreach ($csv as $linea) {

$url = $linea[0];
scrapUrl($url);

}


$servername = "localhost";
$username = "";
$password = "";
$dbname = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}


foreach ($csv as $linea) {


$sql = "INSERT INTO productos (nombre, nombreFabricante) VALUES($name, $manufacturer)";
print ("<p> $sql </p>");
if ($conn->query($sql) === TRUE) {
echo "Items added to the database!";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}

$conn->close();

?>

编辑:我已经更新了代码。我还添加了价格变量。输出中显示的错误是这样的:

Notice: Undefined variable: name in C:\xampp\htdocs\bootstrap\csv2.php on line 69

Notice: Undefined variable: manufacturer in C:\xampp\htdocs\bootstrap\csv2.php on line 69

Error: INSERT INTO productos (nombre, nombreFabricante) VALUES(,)
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' 'https://url.com/es/product1.html', )' at line 1

如何解决通知: undefined variable :名称和价格的错误?

我想将函数内部的 $name 和 $manufacturer 变量添加到我的 MySQL 表中

最佳答案

我不确定您在哪里定义 $name,因此您需要检查它是否有效。

foreach ($csv as $linea) {


$sql = "INSERT INTO productos (name, manufacturer) VALUES('$name', '{$linea[0]}')";
print ("<p> $sql </p>");
if ($conn->query($sql) === TRUE) {
echo "Items added to the database!";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}

$conn->close();

?>

关于php - 如何将每个结果添加到 MySQL 中的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46972014/

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