PHP парсинг XML в Mysql проблема

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
altmax
проходил мимо
Сообщения: 9
Зарегистрирован: 2008-11-04 20:56:53

PHP парсинг XML в Mysql проблема

Непрочитанное сообщение altmax » 2011-02-22 8:37:34

Имеется парсер, который парсит XML в базу данных. С самим парсингом проблемы нет, есть проблема с добавлением новых значений в существующие записи базы данных.

Код: Выделить всё

function characterData($parser, $data)
{
print $data."<br>";
if ($GLOBALS[startflag] ==1 and $data != "" and $GLOBALS[tag] != "OFFERS" and $GLOBALS[tag] != "OFFER"){	
	mysql_query ("UPDATE table1 SET $GLOBALS[tag]='$data' WHERE ID='$GLOBALS[id]'") or die ("errorupdate".mysql_error());	
	print $data."<br>";
	}
}
$data - значение элемента в XML файле. Код в принципе работает, только вместо значения элемента в базу данных добавляются 7 пробелов и всё. Не нравится именно эта переменная, так как если вместо неё подставить любую другую из существующих в программе, в том числе динамически формирующуюся на основе XMl файла, записывается нормально. Тип полей в базе данных - TEXT.
Вопрос - почему это происходит и как с этим бороться?

P.S. это мой первый опыт работы с Mysql.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: PHP парсинг XML в Mysql проблема

Непрочитанное сообщение ProFTP » 2011-02-22 12:51:03

Код: Выделить всё

var_dump($GLOBALS)
надо посмотреть...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

altmax
проходил мимо
Сообщения: 9
Зарегистрирован: 2008-11-04 20:56:53

Re: PHP парсинг XML в Mysql проблема

Непрочитанное сообщение altmax » 2011-02-22 13:43:16

Вывод var_dump($GLOBALS):

Код: Выделить всё

array(19) {
  ["GLOBALS"]=>
  array(19) {
    ["GLOBALS"]=>
    *RECURSION*
    ["_ENV"]=>
    array(6) {
      ["APACHE_PID_FILE"]=>
      string(20) "/var/run/apache2.pid"
      ["PATH"]=>
      string(28) "/usr/local/bin:/usr/bin:/bin"
      ["LANG"]=>
      string(1) "C"
      ["APACHE_RUN_GROUP"]=>
      string(8) "www-data"
      ["APACHE_RUN_USER"]=>
      string(8) "www-data"
      ["PWD"]=>
      string(1) "/"
    }
    ["HTTP_ENV_VARS"]=>
    array(6) {
      ["APACHE_PID_FILE"]=>
      string(20) "/var/run/apache2.pid"
      ["PATH"]=>
      string(28) "/usr/local/bin:/usr/bin:/bin"
      ["LANG"]=>
      string(1) "C"
      ["APACHE_RUN_GROUP"]=>
      string(8) "www-data"
      ["APACHE_RUN_USER"]=>
      string(8) "www-data"
      ["PWD"]=>
      string(1) "/"
    }
    ["_POST"]=>
    array(0) {
    }
    ["HTTP_POST_VARS"]=>
    array(0) {
    }
    ["_GET"]=>
    array(0) {
    }
    ["HTTP_GET_VARS"]=>
    array(0) {
    }
    ["_COOKIE"]=>
    array(3) {
      ["fontSize"]=>
      string(3) "100"
      ["language"]=>
      string(2) "ru"
      ["currency"]=>
      string(3) "GBP"
    }
    ["HTTP_COOKIE_VARS"]=>
    array(3) {
      ["fontSize"]=>
      string(3) "100"
      ["language"]=>
      string(2) "ru"
      ["currency"]=>
      string(3) "GBP"
    }
    ["_SERVER"]=>
    array(32) {
      ["HTTP_HOST"]=>
      string(9) "127.0.0.1"
      ["HTTP_USER_AGENT"]=>
      string(102) "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11"
      ["HTTP_ACCEPT"]=>
      string(63) "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ["HTTP_ACCEPT_LANGUAGE"]=>
      string(23) "ru,en-us;q=0.7,en;q=0.3"
      ["HTTP_ACCEPT_ENCODING"]=>
      string(12) "gzip,deflate"
      ["HTTP_ACCEPT_CHARSET"]=>
      string(32) "windows-1251,utf-8;q=0.7,*;q=0.7"
      ["HTTP_KEEP_ALIVE"]=>
      string(3) "300"
      ["HTTP_CONNECTION"]=>
      string(10) "keep-alive"
      ["HTTP_REFERER"]=>
      string(17) "http://127.0.0.1/"
      ["HTTP_COOKIE"]=>
      string(39) "fontSize=100; language=ru; currency=GBP"
      ["HTTP_CACHE_CONTROL"]=>
      string(9) "max-age=0"
      ["PATH"]=>
      string(28) "/usr/local/bin:/usr/bin:/bin"
      ["SERVER_SIGNATURE"]=>
      string(110) "
Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch Server at 127.0.0.1 Port 80

"
      ["SERVER_SOFTWARE"]=>
      string(62) "Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch"
      ["SERVER_NAME"]=>
      string(9) "127.0.0.1"
      ["SERVER_ADDR"]=>
      string(9) "127.0.0.1"
      ["SERVER_PORT"]=>
      string(2) "80"
      ["REMOTE_ADDR"]=>
      string(9) "127.0.0.1"
      ["DOCUMENT_ROOT"]=>
      string(8) "/var/www"
      ["SERVER_ADMIN"]=>
      string(19) "webmaster@localhost"
      ["SCRIPT_FILENAME"]=>
      string(25) "/var/www/parser/index.php"
      ["REMOTE_PORT"]=>
      string(5) "38044"
      ["GATEWAY_INTERFACE"]=>
      string(7) "CGI/1.1"
      ["SERVER_PROTOCOL"]=>
      string(8) "HTTP/1.1"
      ["REQUEST_METHOD"]=>
      string(3) "GET"
      ["QUERY_STRING"]=>
      string(0) ""
      ["REQUEST_URI"]=>
      string(8) "/parser/"
      ["SCRIPT_NAME"]=>
      string(17) "/parser/index.php"
      ["PHP_SELF"]=>
      string(17) "/parser/index.php"
      ["REQUEST_TIME"]=>
      int(1298370618)
      ["argv"]=>
      array(0) {
      }
      ["argc"]=>
      int(0)
    }
    ["HTTP_SERVER_VARS"]=>
    array(32) {
      ["HTTP_HOST"]=>
      string(9) "127.0.0.1"
      ["HTTP_USER_AGENT"]=>
      string(102) "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11"
      ["HTTP_ACCEPT"]=>
      string(63) "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      ["HTTP_ACCEPT_LANGUAGE"]=>
      string(23) "ru,en-us;q=0.7,en;q=0.3"
      ["HTTP_ACCEPT_ENCODING"]=>
      string(12) "gzip,deflate"
      ["HTTP_ACCEPT_CHARSET"]=>
      string(32) "windows-1251,utf-8;q=0.7,*;q=0.7"
      ["HTTP_KEEP_ALIVE"]=>
      string(3) "300"
      ["HTTP_CONNECTION"]=>
      string(10) "keep-alive"
      ["HTTP_REFERER"]=>
      string(17) "http://127.0.0.1/"
      ["HTTP_COOKIE"]=>
      string(39) "fontSize=100; language=ru; currency=GBP"
      ["HTTP_CACHE_CONTROL"]=>
      string(9) "max-age=0"
      ["PATH"]=>
      string(28) "/usr/local/bin:/usr/bin:/bin"
      ["SERVER_SIGNATURE"]=>
      string(110) "
Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch Server at 127.0.0.1 Port 80

"
      ["SERVER_SOFTWARE"]=>
      string(62) "Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch"
      ["SERVER_NAME"]=>
      string(9) "127.0.0.1"
      ["SERVER_ADDR"]=>
      string(9) "127.0.0.1"
      ["SERVER_PORT"]=>
      string(2) "80"
      ["REMOTE_ADDR"]=>
      string(9) "127.0.0.1"
      ["DOCUMENT_ROOT"]=>
      string(8) "/var/www"
      ["SERVER_ADMIN"]=>
      string(19) "webmaster@localhost"
      ["SCRIPT_FILENAME"]=>
      string(25) "/var/www/parser/index.php"
      ["REMOTE_PORT"]=>
      string(5) "38044"
      ["GATEWAY_INTERFACE"]=>
      string(7) "CGI/1.1"
      ["SERVER_PROTOCOL"]=>
      string(8) "HTTP/1.1"
      ["REQUEST_METHOD"]=>
      string(3) "GET"
      ["QUERY_STRING"]=>
      string(0) ""
      ["REQUEST_URI"]=>
      string(8) "/parser/"
      ["SCRIPT_NAME"]=>
      string(17) "/parser/index.php"
      ["PHP_SELF"]=>
      string(17) "/parser/index.php"
      ["REQUEST_TIME"]=>
      int(1298370618)
      ["argv"]=>
      array(0) {
      }
      ["argc"]=>
      int(0)
    }
    ["_FILES"]=>
    array(0) {
    }
    ["HTTP_POST_FILES"]=>
    array(0) {
    }
    ["_REQUEST"]=>
    array(3) {
      ["fontSize"]=>
      string(3) "100"
      ["language"]=>
      string(2) "ru"
      ["currency"]=>
      string(3) "GBP"
    }
    ["file"]=>
    string(7) "one.xml"
    ["startflag"]=>
    int(0)
    ["tag"]=>
    int(0)
    ["telo"]=>
    string(0) ""
    ["id"]=>
    int(0)
  }
  ["_ENV"]=>
  array(6) {
    ["APACHE_PID_FILE"]=>
    string(20) "/var/run/apache2.pid"
    ["PATH"]=>
    string(28) "/usr/local/bin:/usr/bin:/bin"
    ["LANG"]=>
    string(1) "C"
    ["APACHE_RUN_GROUP"]=>
    string(8) "www-data"
    ["APACHE_RUN_USER"]=>
    string(8) "www-data"
    ["PWD"]=>
    string(1) "/"
  }
  ["HTTP_ENV_VARS"]=>
  array(6) {
    ["APACHE_PID_FILE"]=>
    string(20) "/var/run/apache2.pid"
    ["PATH"]=>
    string(28) "/usr/local/bin:/usr/bin:/bin"
    ["LANG"]=>
    string(1) "C"
    ["APACHE_RUN_GROUP"]=>
    string(8) "www-data"
    ["APACHE_RUN_USER"]=>
    string(8) "www-data"
    ["PWD"]=>
    string(1) "/"
  }
  ["_POST"]=>
  array(0) {
  }
  ["HTTP_POST_VARS"]=>
  array(0) {
  }
  ["_GET"]=>
  array(0) {
  }
  ["HTTP_GET_VARS"]=>
  array(0) {
  }
  ["_COOKIE"]=>
  array(3) {
    ["fontSize"]=>
    string(3) "100"
    ["language"]=>
    string(2) "ru"
    ["currency"]=>
    string(3) "GBP"
  }
  ["HTTP_COOKIE_VARS"]=>
  array(3) {
    ["fontSize"]=>
    string(3) "100"
    ["language"]=>
    string(2) "ru"
    ["currency"]=>
    string(3) "GBP"
  }
  ["_SERVER"]=>
  array(32) {
    ["HTTP_HOST"]=>
    string(9) "127.0.0.1"
    ["HTTP_USER_AGENT"]=>
    string(102) "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11"
    ["HTTP_ACCEPT"]=>
    string(63) "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
    ["HTTP_ACCEPT_LANGUAGE"]=>
    string(23) "ru,en-us;q=0.7,en;q=0.3"
    ["HTTP_ACCEPT_ENCODING"]=>
    string(12) "gzip,deflate"
    ["HTTP_ACCEPT_CHARSET"]=>
    string(32) "windows-1251,utf-8;q=0.7,*;q=0.7"
    ["HTTP_KEEP_ALIVE"]=>
    string(3) "300"
    ["HTTP_CONNECTION"]=>
    string(10) "keep-alive"
    ["HTTP_REFERER"]=>
    string(17) "http://127.0.0.1/"
    ["HTTP_COOKIE"]=>
    string(39) "fontSize=100; language=ru; currency=GBP"
    ["HTTP_CACHE_CONTROL"]=>
    string(9) "max-age=0"
    ["PATH"]=>
    string(28) "/usr/local/bin:/usr/bin:/bin"
    ["SERVER_SIGNATURE"]=>
    string(110) "
Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch Server at 127.0.0.1 Port 80

"
    ["SERVER_SOFTWARE"]=>
    string(62) "Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch"
    ["SERVER_NAME"]=>
    string(9) "127.0.0.1"
    ["SERVER_ADDR"]=>
    string(9) "127.0.0.1"
    ["SERVER_PORT"]=>
    string(2) "80"
    ["REMOTE_ADDR"]=>
    string(9) "127.0.0.1"
    ["DOCUMENT_ROOT"]=>
    string(8) "/var/www"
    ["SERVER_ADMIN"]=>
    string(19) "webmaster@localhost"
    ["SCRIPT_FILENAME"]=>
    string(25) "/var/www/parser/index.php"
    ["REMOTE_PORT"]=>
    string(5) "38044"
    ["GATEWAY_INTERFACE"]=>
    string(7) "CGI/1.1"
    ["SERVER_PROTOCOL"]=>
    string(8) "HTTP/1.1"
    ["REQUEST_METHOD"]=>
    string(3) "GET"
    ["QUERY_STRING"]=>
    string(0) ""
    ["REQUEST_URI"]=>
    string(8) "/parser/"
    ["SCRIPT_NAME"]=>
    string(17) "/parser/index.php"
    ["PHP_SELF"]=>
    string(17) "/parser/index.php"
    ["REQUEST_TIME"]=>
    int(1298370618)
    ["argv"]=>
    array(0) {
    }
    ["argc"]=>
    int(0)
  }
  ["HTTP_SERVER_VARS"]=>
  array(32) {
    ["HTTP_HOST"]=>
    string(9) "127.0.0.1"
    ["HTTP_USER_AGENT"]=>
    string(102) "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11"
    ["HTTP_ACCEPT"]=>
    string(63) "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
    ["HTTP_ACCEPT_LANGUAGE"]=>
    string(23) "ru,en-us;q=0.7,en;q=0.3"
    ["HTTP_ACCEPT_ENCODING"]=>
    string(12) "gzip,deflate"
    ["HTTP_ACCEPT_CHARSET"]=>
    string(32) "windows-1251,utf-8;q=0.7,*;q=0.7"
    ["HTTP_KEEP_ALIVE"]=>
    string(3) "300"
    ["HTTP_CONNECTION"]=>
    string(10) "keep-alive"
    ["HTTP_REFERER"]=>
    string(17) "http://127.0.0.1/"
    ["HTTP_COOKIE"]=>
    string(39) "fontSize=100; language=ru; currency=GBP"
    ["HTTP_CACHE_CONTROL"]=>
    string(9) "max-age=0"
    ["PATH"]=>
    string(28) "/usr/local/bin:/usr/bin:/bin"
    ["SERVER_SIGNATURE"]=>
    string(110) "
Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch Server at 127.0.0.1 Port 80

"
    ["SERVER_SOFTWARE"]=>
    string(62) "Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.6 with Suhosin-Patch"
    ["SERVER_NAME"]=>
    string(9) "127.0.0.1"
    ["SERVER_ADDR"]=>
    string(9) "127.0.0.1"
    ["SERVER_PORT"]=>
    string(2) "80"
    ["REMOTE_ADDR"]=>
    string(9) "127.0.0.1"
    ["DOCUMENT_ROOT"]=>
    string(8) "/var/www"
    ["SERVER_ADMIN"]=>
    string(19) "webmaster@localhost"
    ["SCRIPT_FILENAME"]=>
    string(25) "/var/www/parser/index.php"
    ["REMOTE_PORT"]=>
    string(5) "38044"
    ["GATEWAY_INTERFACE"]=>
    string(7) "CGI/1.1"
    ["SERVER_PROTOCOL"]=>
    string(8) "HTTP/1.1"
    ["REQUEST_METHOD"]=>
    string(3) "GET"
    ["QUERY_STRING"]=>
    string(0) ""
    ["REQUEST_URI"]=>
    string(8) "/parser/"
    ["SCRIPT_NAME"]=>
    string(17) "/parser/index.php"
    ["PHP_SELF"]=>
    string(17) "/parser/index.php"
    ["REQUEST_TIME"]=>
    int(1298370618)
    ["argv"]=>
    array(0) {
    }
    ["argc"]=>
    int(0)
  }
  ["_FILES"]=>
  array(0) {
  }
  ["HTTP_POST_FILES"]=>
  array(0) {
  }
  ["_REQUEST"]=>
  array(3) {
    ["fontSize"]=>
    string(3) "100"
    ["language"]=>
    string(2) "ru"
    ["currency"]=>
    string(3) "GBP"
  }
  ["file"]=>
  string(7) "one.xml"
  ["startflag"]=>
  int(0)
  ["tag"]=>
  int(0)
  ["telo"]=>
  string(0) ""
  ["id"]=>
  int(0)

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: PHP парсинг XML в Mysql проблема

Непрочитанное сообщение ProFTP » 2011-02-22 16:41:17

потому что tag и id = 0
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

altmax
проходил мимо
Сообщения: 9
Зарегистрирован: 2008-11-04 20:56:53

Re: PHP парсинг XML в Mysql проблема

Непрочитанное сообщение altmax » 2011-02-22 16:53:42

Так они равны нулю в начале выполнения скрипта, потом в процессе выполнения им присваиваются необходимые значения. Более того, $data тоже присваивается значение, которое необходимо (print $data; выводит его на экран до и после выполнения mysql запроса). А вот в mysql запросе значения почему то не записываются в таблицу. Если тип поля таблицы изменить на bynary вместо text, то вместо семи пробелов появляется "/n". Такое ощущение, что mysql сервер не воспринимает значение Sdata как текстовые данные.

altmax
проходил мимо
Сообщения: 9
Зарегистрирован: 2008-11-04 20:56:53

Re: PHP парсинг XML в Mysql проблема

Непрочитанное сообщение altmax » 2011-02-24 20:21:00

Сделал что нужно средствами simpleXML. Сабж заставить работать не удалось.