Скриптовый скрипт PHP Curl не вставляет данные в БД («синтаксическая ошибка») - PullRequest
0 голосов
/ 26 февраля 2011

Я работаю над сценарием PHP с curl, который входит в 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

Любая помощь приветствуется.Извините за то, что я такой новичок.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2011

Из вашего полного сценария на 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 и подготовленных отчетах, которые довольно много сжимают над запросом.

0 голосов
/ 26 февраля 2011

@ Кит Мандер: Попробуйте

"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() );
...