Forum Moderators: coopster
I'm using php to dynamically create a query from an array. When the query is run, it doesn't always insert all of the data. Some of the last columns are ignored. It happens on very long inserts... with over 50 columns in the table.
Is it timing out? Too big for a buffer?
How does one get around this?
$connection = mysql_connect($db, $db_user, $db_pass) or die('1 '.mysql_error());
mysql_select_db($db_2, $connection) or die('2 '.mysql_error());
/*** constructing query that inserts data into table ***/
$query = "INSERT INTO ".$sectionName." (coID,";
for($i=1;$i<=count($_SESSION['currentSection'])-1;$i++){
$query = $query.$sectionNumber."_".$i.", ";
}
$query = $query.$sectionNumber."_".$i.")";
$query = $query." VALUES (\"".md5($_SESSION['setup']['coname'])."\",\"";
for($i=1;$i<=count($_SESSION['currentSection'])-1;$i++){
$query = $query.$_SESSION['currentSection'][$i]."\",\"";
}
$query = $query.$_SESSION['currentSection'][$i]."\")";
/*** cleaning query text ***/
$query = validateQuery($query);
if($result = mysql_query($query, $connection)){
mysql_close($connection);
...
Try to print/echo the query to see where it stops inserting data (debug).
I see you are monitoring the errors on a connection, but not on the actual query. Have you tried monitoring the query for errors to see if any are returned? I guess if you are INSERTing partial data then the query must not be failing, just not working correctly.
I would dump the statement to the browser to see what it looks like. There is a Troubleshooting PHP [webmasterworld.com] thread in our PHP Forum Library [webmasterworld.com] that describes how to do this.
<added>
omoutop and I are thinking along the same lines here, thanks, omoutop!
</added>