I am Parsing a very large xml document into a mysql database here is the error I am getting.
Parse error: syntax error, unexpected ';' in on line 51
Here is the code with personal information removed.
<?php
session_start();
$_SESSION['parts'] = array();
?>
<html>
<head>
<link rel="shortcut icon" href="/favicon.ico" />
<title>
Title
</title>
</head>
<body>
<?php
mysql_connect('l', '', '');
mysql_select_db('');
$parser = xml_parser_create();
function start($parser, $element_name, $element_attrs)
{
switch($element_name)
{
case "warehousloc":
// this is the start of a set of data
$_SESSION['parts'] = array(); // create an empty set
break;
case "description":
$query = sprintf("INSERT INTO values (warehouseloc, trackingnumber, partnumber, name, imagename, primarycatalog
primaryyear, primarypage, orgincountry, price, catagory1, catagory2, catagory3, catagory4, web_catagory1, web_catagory2, web_catagory3, description)
VALUES ('%s','%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d)",
mysql_real_escape_string($_SESSION['parts']['warehouseloc'],
mysql_real_escape_string($_SESSION['parts']['trackingnumber'],
mysql_real_escape_string($_SESSION['parts']['partnumber'],
mysql_real_escape_string($_SESSION['parts']['name'],
mysql_real_escape_string($_SESSION['parts']['imagename'],
mysql_real_escape_string($_SESSION['parts']['primarycatalog'],
mysql_real_escape_string($_SESSION['parts']['primaryyear'],
mysql_real_escape_string($_SESSION['parts']['primarypage'],
mysql_real_escape_string($_SESSION['parts']['origincountry'],
mysql_real_escape_string($_SESSION['parts']['price'],
mysql_real_escape_string($_SESSION['parts']['category1'],
mysql_real_escape_string($_SESSION['parts']['catagory2'],
mysql_real_escape_string($_SESSION['parts']['catagory3'],
mysql_real_escape_string($_SESSION['parts']['catagory4'],
mysql_real_escape_string($_SESSION['parts']['web_catagory1'],
mysql_real_escape_string($_SESSION['parts']['web_catagory2'],
mysql_real_escape_string($_SESSION['parts']['web_catagory3'],
mysql_real_escape_string($_SESSION['parts']['description'],
mysql_query($query)
break;
default:
}
}
function stop($parser, $element_name)
{
}
function char($parser,$data)
{
$data = trim($data);
if($data != ''){
if(!isset($_SESSION['parts']['warehouseloc'])){
$_SESSION['parts']['warehouseloc'] = $data;
} elseif(!isset($_SESSION['parts']['trackingnumber'])){
$_SESSION['parts']['trackingnumber'] = $data;
} elseif (!isset($_SESSION['parts']['partnumber'])){
$_SESSION['parts']['partnumber'] = $data;
} elseif (!isset($_SESSION['parts']['name'])){
$_SESSION['parts']['imagename'] = $data;
} elseif (!isset($_SESSION['parts']['primarycatalog'])){
$_SESSION['parts']['primarycatalog'] = $data;
} elseif (!isset($_SESSION['parts']['primaryyear'])){
$_SESSION['parts']['primaryyear'] = $data;
} elseif (!isset($_SESSION['parts']['primarypage'])){
$_SESSION['parts']['primarypage'] = $data;
} elseif (!isset($_SESSION['parts']['origincountry'])){
$_SESSION['parts']['origincountry'] = $data;
} elseif (!isset($_SESSION['parts']['price'])){
$_SESSION['parts']['price'] = $data;
} elseif (!isset($_SESSION['parts']['catagory1'])){
$_SESSION['parts']['catagory1'] = $data;
} elseif (!isset($_SESSION['parts']['catagory2'])){
$_SESSION['parts']['catagory2'] = $data;
} elseif (!isset($_SESSION['parts']['catagory3'])){
$_SESSION['parts']['catagory3'] = $data;
} elseif (!isset($_SESSION['parts']['catagory4'])){
$_SESSION['parts']['catagory4'] = $data;
} elseif (!isset($_SESSION['parts']['web_catagory1'])){
$_SESSION['parts']['web_catagory1'] = $data;
} elseif (!isset($_SESSION['parts']['web_catagory2'])){
$_SESSION['parts']['web_catagory2'] = $data;
} elseif (!isset($_SESSION['parts']['web_catagory3'])){
$_SESSION['parts']['web_catagory3'] = $data;
} elseif (!isset($_SESSION['parts']['description'])){
$_SESSION['parts']['description'] = $data;
}
}
}
xml_set_element_handler($parser, "start", "stop");
xml_set_character_data_handler($parser, "char");
$fp=fopen("file","r");
while ($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp)) or
die (sprintf("XML Error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
xml_parser_free($parser);
?>
</body>
</html>
I see where the error is at in my code but I do not understand why it is coming up. I can remove the break but it just moves the break to the next line.