【问题标题】:PHP Curl scraping script not inserting data into DB ('syntax error')PHP Curl 抓取脚本未将数据插入数据库(“语法错误”)
【发布时间】:2011-02-26 21:35:54
【问题描述】:

我正在编写一个带有 curl 的 PHP 脚本,该脚本登录到 Google AdSense,抓取单个数据字符串并将其插入数据库。

快到了。该脚本设置表,登录到 AdSense 就好了,可以回显结果数据。但它并没有将它插入数据库,所以我认为这只是第 80-87 行(下)之间一些错误代码的简单案例:

"INSERT INTO $DB_TABLE (
`id`, `earnings`, `gmt-plus-one`, `gmt-minus-eight`
) VALUES (
NULL, '"
. mysql_real_escape_string( $earnings ) . "', '"
. mysql_real_escape_string( $gmtPlusOne ) . "', '"
. mysql_real_escape_string( $gmtMinusEight ) . "' );" )
or die( mysql_error() );

完整代码:http://cl.ly/4rH0

非常感谢任何帮助。对不起,我是个新手。

【问题讨论】:

    标签: php mysql adsense


    【解决方案1】:

    @Keith Mander:试试

    "INSERT INTO $DB_TABLE (
    `earnings`, `gmt-plus-one`, `gmt-minus-eight`
    ) VALUES ('"
    . mysql_real_escape_string( $earnings ) . "', '"
    . mysql_real_escape_string( $gmtPlusOne ) . "', '"
    . mysql_real_escape_string( $gmtMinusEight ) . "' );" )
    or die( mysql_error() );
    

    【讨论】:

    • 非常感谢隐身忍者的尝试。不幸的是,仍然没有雪茄。我收到“无法正确登录”的编码错误。
    • @Keith Mander:就像您在完整版代码中的自定义错误而不是 MySQL 错误一样?那么这不是您的 SQL,而是您的第二个 preg_match 找不到匹配项并失败。
    【解决方案2】:

    从您在http://cl.ly/4rH0/adsense_earnings2.php 的完整脚本中,很明显$DB_TABLE 不存在。它最初被定义为常量,这就是 SQL 查询失败的原因。

    你必须把它改写成:

      mysql_query(
             "INSERT INTO " . DB_TABLE . " (
                     `id`, `earnings`, `gmt-plus-one`, `gmt-minus-eight`
                     ) VALUES (
                     NULL, '"
                     . mysql_real_escape_string( $earnings ) . "', '"
                     . mysql_real_escape_string( $gmtPlusOne ) . "', '"
                     . mysql_real_escape_string( $gmtMinusEight ) . "' );" )
              or die( mysql_error() );
    

    不相关的说明:mysql_ 函数真的很麻烦。您应该考虑迁移到 PDO 并准备好语句,这将大大压缩上述查询。

    【讨论】:

    • “无法正确登录” - 我想我注定要完成这个:/
    • @Keith:无论如何你都不应该使用 curl。如果站点依赖于登录,请使用内存中的 CookieJar 尝试 Zend_Http。或者 ty phpQuery 如果你还是要抓取的话。
    猜你喜欢
    • 2012-11-10
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多