php - 使用 php 将抓取的变量插入 mysql 表

标签 php mysql

我一直在寻找一个非常简单的数据库,它有 4 列。第一个是自动增量的本地 int,第二个是单个数字 ID int,第三个是另一个 INT,第四个是抓取的变量(字符串)。然而,我遇到的问题是实际插入 3 个变量。

我在 for 循环的末尾将 $charIDs 变量加 1,这在我正在抓取的 url 中使用。 $server 变量只是一个静态 int,$trimmedName 变量是我从每个网页上抓取的实际文本,效果很好。

for($i = 1; $i <= 5; $i++){
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, "http://website.com/asddas/asda/search?=$charIDs");
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);

$content = curl_exec($ch);

$dom = new DOMDocument();
$dom->loadHTML($content);

$xpath = new DOMXPath($dom);

$tags = $xpath->query('//*[@id="div_contents"]/div[2]/div[2]/div[2]/div[1]/dl/dd/span/text()');
foreach ($tags as $tag) {
    trim($name = $tag->nodeValue);
}
if ($name != null){

$trimmedName = trim($name);

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

$sql = "INSERT INTO players (serverID, charID, charName)
VALUES ('$server', '$charIDs', '$trimmedName')";

$conn->close();
$name = null;
$trimmedName = null;
}
$charIDs++;
}

我已经检查了变量、表名等,但我不确定为什么它不起作用。我能够手动将行插入数据库。

最佳答案

以下是我注意到的关于您的脚本的一些事情。

1) 你没有执行查询,这是个大问题。
2) 你应该仍然使用参数化查询。
3) 为什么要在每次迭代时重新创建 mysqli 和语句对象。

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "INSERT INTO players (serverID, charID, charName) VALUES (?,?,?)";
$stmt = $conn->prepare($sql);

if (!$stmt) {
    die('could not create statement: ' . $conn->error);
}

for($i = 1; $i <= 5; $i++){
    // curl and XML stuff here
    $binded = $stmt->bind_param('iis', $server, $charIDs, $trimmedName);
    if ($binded) {
        echo ($stmt->execute() ? 'Inserted' : 'Did not insert');
    }
    $charIDs++;
}

$conn->close();

关于php - 使用 php 将抓取的变量插入 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27068746/

相关文章:

php - IIS:隐藏段和自定义错误冲突

要使用的 PHP 数量

php - 试图查询两个表,但我不知道如何查询

php - 使用 php 将 mysql 表导出到 csv(不选择输出文件)

mysql - 游标的不一致行为

php - SQL : How to reduce multiple time querying the same table ..查询优化

javascript - AJAX使用GET方法加载php文件,加载时但某些jquery插件没有出现

mysql - 数据库设计问题,我应该防止交叉关系吗?

java - 使用日期参数时,Spring Data JPA 日期 "between"查询问题

php - 使用 PHP 将图像文件上传到服务器的最安全方法是什么?