This is a discussion on "select" query dies, not sure why within the PHP Language forums, part of the PHP Programming Forums category; $sql = 'INSERT INTO fs_usermetadata (' . substr(trim($cols), 0, strrpos(trim($cols), ',')) . ') VALUES (' . substr(trim($values), 0, strrpos(trim($values), ',')) . ')'; if (!...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
$sql = 'INSERT INTO fs_usermetadata (' . substr(trim($cols), 0,
strrpos(trim($cols), ',')) . ') VALUES (' . substr(trim($values), 0, strrpos(trim($values), ',')) . ')'; if (!mysql_query($sql)) { $hasSubmittedUser = 0; $errorMsg .= $font . '<font color=cc0000><li>Could not insert record into db</li></font>' . '</font><p>'; } if ($hasSubmittedUser) { // THIS BLOCK WILL ENSURE THAT THE ID WILL BE PASSED AND ALL DATA GATHERED FOR EDITING // OF RECENTLY SUBMITTED INFORMATION $willEditUser = 1; $sql = 'SELECT fs_userid FROM fs_usermetadata ' . 'WHERE fs_username = \'' . $fs_username . '\' ' . ' AND fs_password = \'' . $fs_password . '\' '; $query = mysql_query($sql) or die('Could not run updated data select query: ' . $sql); while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) $id = $row["fs_userid"]; } On occasions the "select" query will die for no apparent reason. The "insert statement" is nullified and not done either. However, upon the user hitting the back browser button and resubmitting both work fine and then continue to work fine for an indeterminate amount of time. Perhaps I'm missing something here: what I'm trying to do is insert a new record and immediately obtain the id column field value from the new record. Thanks Phil |
|
|||
|
In article <9z91b.4614$xf.592@lakeread04>, Phil Powell
<soazine@erols.com> wrote: > $sql = 'INSERT INTO fs_usermetadata (' . substr(trim($cols), 0, > strrpos(trim($cols), ',')) . > ') VALUES (' . substr(trim($values), 0, strrpos(trim($values), > ',')) . ')'; > > if (!mysql_query($sql)) { > $hasSubmittedUser = 0; > $errorMsg .= $font . '<font color=cc0000><li>Could not insert record > into db</li></font>' . > '</font><p>'; > } > > if ($hasSubmittedUser) { > // THIS BLOCK WILL ENSURE THAT THE ID WILL BE PASSED AND ALL DATA > GATHERED FOR EDITING > // OF RECENTLY SUBMITTED INFORMATION > $willEditUser = 1; > $sql = 'SELECT fs_userid FROM fs_usermetadata ' . > 'WHERE fs_username = \'' . $fs_username . '\' ' . > ' AND fs_password = \'' . $fs_password . '\' '; > $query = mysql_query($sql) or die('Could not run updated data select > query: ' . $sql); > while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) $id = > $row["fs_userid"]; > } > > On occasions the "select" query will die for no apparent reason. The > "insert statement" is nullified and not done either. However, upon the user > hitting the back browser button and resubmitting both work fine and then > continue to work fine for an indeterminate amount of time. > > Perhaps I'm missing something here: what I'm trying to do is insert a new > record and immediately obtain the id column field value from the new record. > > Thanks > Phil > > What kind of error handling are you doing? You aren't using Dreamweaver are u? |
|
|||
|
No this is all freehand, cannot afford Dreamweaver.. error handling is a bit
dodgy since it's not set up on the hosting service other than what you throw in your die() statements and mysql_error(). Phil "E-Star" <unix_core@linuxmail.org> wrote in message news:210820031419197203%unix_core@linuxmail.org... > In article <9z91b.4614$xf.592@lakeread04>, Phil Powell > <soazine@erols.com> wrote: > > > $sql = 'INSERT INTO fs_usermetadata (' . substr(trim($cols), 0, > > strrpos(trim($cols), ',')) . > > ') VALUES (' . substr(trim($values), 0, strrpos(trim($values), > > ',')) . ')'; > > > > if (!mysql_query($sql)) { > > $hasSubmittedUser = 0; > > $errorMsg .= $font . '<font color=cc0000><li>Could not insert record > > into db</li></font>' . > > '</font><p>'; > > } > > > > if ($hasSubmittedUser) { > > // THIS BLOCK WILL ENSURE THAT THE ID WILL BE PASSED AND ALL DATA > > GATHERED FOR EDITING > > // OF RECENTLY SUBMITTED INFORMATION > > $willEditUser = 1; > > $sql = 'SELECT fs_userid FROM fs_usermetadata ' . > > 'WHERE fs_username = \'' . $fs_username . '\' ' . > > ' AND fs_password = \'' . $fs_password . '\' '; > > $query = mysql_query($sql) or die('Could not run updated data select > > query: ' . $sql); > > while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) $id = > > $row["fs_userid"]; > > } > > > > On occasions the "select" query will die for no apparent reason. The > > "insert statement" is nullified and not done either. However, upon the user > > hitting the back browser button and resubmitting both work fine and then > > continue to work fine for an indeterminate amount of time. > > > > Perhaps I'm missing something here: what I'm trying to do is insert a new > > record and immediately obtain the id column field value from the new record. > > > > Thanks > > Phil > > > > > What kind of error handling are you doing? You aren't using > Dreamweaver are u? |
|
|||
|
I refined the code to the following:
$sql = 'INSERT INTO fs_usermetadata (' . substr(trim($cols), 0, strrpos(trim($cols), ',')) . ') VALUES (' . substr(trim($values), 0, strrpos(trim($values), ',')) . ')'; if (!mysql_query($sql)) { $hasSubmittedUser = 0; $errorMsg .= $font . '<font color=cc0000><li>Could not insert record into db: ' . mysql_error() . '</li></font></font><p>'; } else { $willEditUser = 1; // BE SURE TO SWITCH MODE TO EDIT UPON SUCCESSFUL INSERT TO EDIT NEW USER $id = mysql_insert_id(); // OBTAIN ID IMMEDIATELY AFTER INSERT QUERY $tableHTML .= "\n<p>${font}<font color=000099>New User: <b>" . $fs_user_firstname . ' ' . $fs_user_lastname . '</b> added to the database</font></font><p>'; } So far everything seems stable. Phil "E-Star" <unix_core@linuxmail.org> wrote in message news:210820031419197203%unix_core@linuxmail.org... > In article <9z91b.4614$xf.592@lakeread04>, Phil Powell > <soazine@erols.com> wrote: > > > $sql = 'INSERT INTO fs_usermetadata (' . substr(trim($cols), 0, > > strrpos(trim($cols), ',')) . > > ') VALUES (' . substr(trim($values), 0, strrpos(trim($values), > > ',')) . ')'; > > > > if (!mysql_query($sql)) { > > $hasSubmittedUser = 0; > > $errorMsg .= $font . '<font color=cc0000><li>Could not insert record > > into db</li></font>' . > > '</font><p>'; > > } > > > > if ($hasSubmittedUser) { > > // THIS BLOCK WILL ENSURE THAT THE ID WILL BE PASSED AND ALL DATA > > GATHERED FOR EDITING > > // OF RECENTLY SUBMITTED INFORMATION > > $willEditUser = 1; > > $sql = 'SELECT fs_userid FROM fs_usermetadata ' . > > 'WHERE fs_username = \'' . $fs_username . '\' ' . > > ' AND fs_password = \'' . $fs_password . '\' '; > > $query = mysql_query($sql) or die('Could not run updated data select > > query: ' . $sql); > > while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) $id = > > $row["fs_userid"]; > > } > > > > On occasions the "select" query will die for no apparent reason. The > > "insert statement" is nullified and not done either. However, upon the user > > hitting the back browser button and resubmitting both work fine and then > > continue to work fine for an indeterminate amount of time. > > > > Perhaps I'm missing something here: what I'm trying to do is insert a new > > record and immediately obtain the id column field value from the new record. > > > > Thanks > > Phil > > > > > What kind of error handling are you doing? You aren't using > Dreamweaver are u? |