Php 如何将其他网站的数据插入mysql?

Php 如何将其他网站的数据插入mysql?,php,mysql,sql-insert,Php,Mysql,Sql Insert,我想在周末学习一些新东西,决定自学PHP、DOM、和MySQL。作为一个启动项目,我想尝试将从另一个网站提取的下表添加到我自己的数据库中 然而,当我试图将数据(不包括标题行,如'No.,'Ticker'等)添加到我自己的数据库时,我遇到了一堵墙 以下是我的代码摘录: <?php $dom = new DOMDocument; $dom->loadHTML($document); $tbl = $dom->getElementByID('

我想在周末学习一些新东西,决定自学
PHP
DOM
、和
MySQL
。作为一个启动项目,我想尝试将从另一个网站提取的下表添加到我自己的数据库中

然而,当我试图将数据(不包括标题行,如
'No.
'Ticker'
等)添加到我自己的数据库时,我遇到了一堵墙

以下是我的代码摘录:

<?php   

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

     $tbl = $dom->getElementByID('forex_performance');
     $trneeded = $tbl->getElementsByTagName('tr');

     foreach ($trneeded as $row) {
         foreach ($row->getElementsByTagName('td') as $cell) {
              $cellarray[] = $cell->nodeValue;
              $query = "INSERT INTO sampletable (no, ticker, price, perf5, perfhour, perfday, perfweek, perfmonth,perfquart, perfhalf, perfyear, perfytd, date, time) VALUES ('')
              mysql_query($query);
        } 
     }

?>

使用插入选择:

INSERT INTO sampletable (no, ticker, price, perf5, perfhour, perfday, perfweek, perfmonth,perfquart, perfhalf, perfyear, perfytd, date, time) 
SELECT ... ;

使用“插入到选择中”:

INSERT INTO sampletable (no, ticker, price, perf5, perfhour, perfday, perfweek, perfmonth,perfquart, perfhalf, perfyear, perfytd, date, time) 
SELECT ... ;
您可以尝试以下方法:

$userColumns = array(no, ticker, price, perf5, perfhour, 
perfday, perfweek, perfmonth,perfquart, perfhalf, perfyear, perfytd, date,time);

foreach ($trneeded as $row) {
 foreach ($row->getElementsByTagName('td') as $cell) {
    $userValue[] = $cell->nodeValue;        
 }
 $query = "INSERT INTO `sampletable` ( ".
      mysql_real_escape_string(implode(' , ', $userColumns)).
      ") VALUES ( '".
      mysql_real_escape_string(implode("' , '", $userValue)).
      "' )";
  mysql_query($query);
  $userValue = array();
}
您可以尝试以下方法:

$userColumns = array(no, ticker, price, perf5, perfhour, 
perfday, perfweek, perfmonth,perfquart, perfhalf, perfyear, perfytd, date,time);

foreach ($trneeded as $row) {
 foreach ($row->getElementsByTagName('td') as $cell) {
    $userValue[] = $cell->nodeValue;        
 }
 $query = "INSERT INTO `sampletable` ( ".
      mysql_real_escape_string(implode(' , ', $userColumns)).
      ") VALUES ( '".
      mysql_real_escape_string(implode("' , '", $userValue)).
      "' )";
  mysql_query($query);
  $userValue = array();
}

只是一个建议,这样你可以更好地自学。你认为你需要一个完整的周末来做这个?希望我可以说没有,但它最终花了那么长时间,我还在努力。只是一个建议,这样你可以更好地自学。你认为你需要一个完整的周末来做这个?希望我可以说没有,但最终它结束了花了这么长时间,我仍然在努力…嗨,谢谢你!然而,我获取数据的表格是从另一个网站提取的。在这种情况下,是否可以插入“选择”仍有效?您好,谢谢!然而,我获取数据的表格是从另一个网站提取的。在这种情况下,可以插入SELECT仍然有效吗?只是建议您使用mysqli而不是mysqlWow谢谢!在尝试之前,我正在阅读您的代码并理解其逻辑。我读过关于mysql被弃用的报道,但这是我十年前在学校学到的东西,所以在学习其他东西之前,我想先从熟悉的东西开始^^我得到错误“列计数与第1行的值计数不匹配”。然而,当我回显$uservalue[0]-$uservalue[13]时,似乎值的数量与列的数量匹配。我是否遗漏了逗号或某个值?只需回显$query并检查形成的语句即可。你可以复制它并在phpmyadmin中执行以获得确切的想法。似乎无法编辑我上面的帖子。因此,我决定回显$query以查看传递给mysql的内容,结果是:在
finviz_数据库中插入值('No.\','Ticker','Price','Perf 5Min','Perf Hour','Perf Day','Perf Week','Perf Month','Perf Quart','Perf Half','Perf Year','Perf Year','Perf YTD'))似乎该列没有通过,并且这些值添加了奇怪的反斜杠。目前正在尝试阅读数组_键和内爆函数,看看我是否能找出哪里出了问题,只是为了一个建议,你应该使用mysqli而不是mysqlWow谢谢!在尝试之前,我正在阅读您的代码并理解其逻辑。我读过关于mysql被弃用的报道,但这是我十年前在学校学到的东西,所以在学习其他东西之前,我想先从熟悉的东西开始^^我得到错误“列计数与第1行的值计数不匹配”。然而,当我回显$uservalue[0]-$uservalue[13]时,似乎值的数量与列的数量匹配。我是否遗漏了逗号或某个值?只需回显$query并检查形成的语句即可。你可以复制它并在phpmyadmin中执行以获得确切的想法。似乎无法编辑我上面的帖子。因此,我决定回显$query以查看传递给mysql的内容,结果是:在
finviz_数据库中插入值('No.\','Ticker','Price','Perf 5Min','Perf Hour','Perf Day','Perf Week','Perf Month','Perf Quart','Perf Half','Perf Year','Perf Year','Perf YTD'))似乎该列没有通过,并且这些值添加了奇怪的反斜杠。目前正在尝试读取数组_键和内爆函数,看看我是否能找出哪里出了问题