Maison  >  Questions et réponses  >  le corps du texte

Stocker les résultats HTML DOM dans la base de données MySQL

J'essaie de stocker les données récupérées dans ma base de données. Il affiche simplement les résultats, donc l'exploration est normale. Mais il y a certainement une erreur dans la définition de la variable et dans sa transmission à mysql-insert. J'obtiens le message "Nouvel enregistrement créé avec succès". Le résultat de la variable est vide et la date existe.

<?php

$html = file_get_contents('https://www.marketwatch.com/market-data/us?mod=market-data-center');

$scriptDocument = new DOMDocument();

libxml_use_internal_errors(TRUE); 

if(!empty($html)){ 

    $scriptDocument->loadHTML($html);

    libxml_clear_errors(); 

    $scriptDOMXPath = new DOMXPath($scriptDocument);
    $scriptRow = $scriptDOMXPath->query('//th[starts-with(text(), "ISSUES:")]//following::td[6]');if($scriptRow->length > 0){foreach($scriptRow as $row){echo $row->nodeValue;}} // echo result works
    $scriptRow = $scriptDOMXPath->query('//th[starts-with(text(), "ISSUES:")]//following::td[6]');if($scriptRow->length > 0){foreach($scriptRow as $row){$row->nodeValue = $nasdaq_dec;}} // defining variable does not work

};

    $host_name = '';
    $database = '';
    $user_name = '';
    $password = '';
    
    try {
    $conn = new PDO("mysql:host=$host_name; dbname=$database;", $user_name, $password);      
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "INSERT INTO `morgenroutine` (date,nasdaq_dec)
    VALUES (NOW(), '$nasdaq_dec')";

    $conn->exec($sql);
    echo "成功创建新记录";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;

?>
P粉549986089P粉549986089370 Il y a quelques jours500

répondre à tous(1)je répondrai

  • P粉269530053

    P粉2695300532023-09-16 09:28:43

    Maintenant, je comprends ! J'ai changé le format en "texte" dans MySQL et j'ai changé la ligne en : $scriptRow = $scriptDOMXPath->query('//th[starts-with(text(), "ISSUES:")]/following::td[6]');if($scriptRow->length > 0){foreach($scriptRow as $row){$nasdaq_dec = $row->nodeValue;}}

    répondre
    0
  • Annulerrépondre