|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-04-04 07:02 UTC] jules at bj-design dot co dot uk
The database is Access 2000 with a few tables and relations set up in the relationships area. Put simply the update, insert and, possibly, delete querys all appear to work perfectely with no errors reported, except that the database ends up being unchanged afterwards. The only way I have been able to fix this is to query the same table with a select before the end of the script, the changes are then implemented. I have played with autocommit and commit with no effect so I figure it must be a bug in either PHP or the ODBC drivers. Here is one of the scripts with a totally unecessary select towards the end to make it work. <html> <head> <? /* Site by Just Biz http://www.justbiz.co.uk ida@justbiz.co.uk + 44 (0)870 841 3040 Project: Space Windows Routine: ModifySeries2.php Created: 23/03/01 Descrip: Modify series number, title and description, update database. Also inserts new records. Revision: a Rev. Date 23/03/01 Descrip: Created. Parameters - From ModifySeries.php form */ error_reporting(63); require("Security.php"); require("OpenDatabase.php"); if($SeriesId == "-1") { // Create append query $Query = "insert into tbl_Series "; $Query .= "(SeriesNumber, ShortSeriesTitle, Description) "; $Query .= "values('$SeriesNumber', '$ShortSeriesTitle', '$Description')"; } else { // Create update query $Query = "update tbl_Series "; $Query .= "set SeriesNumber= '$SeriesNumber', ShortSeriesTitle= '$ShortSeriesTitle', "; $Query .= "Description= '$Description' where (SeriesId = $SeriesId)"; } $Result = odbc_do($Connect, $Query); ?> <title>Space Windows - Series modified</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <? print($Query."<br>"); $Query = "select SeriesId, SeriesNumber, ShortSeriesTitle, Description from tbl_Series"; $Result = odbc_do($Connect, $Query); while(odbc_fetch_row($Result)) { print(odbc_result($Result,1)); print(odbc_result($Result,2)."<br>"); } if(!$Result) print("<br>Failed"); Print("<h3>Database Updated for Series ".$SeriesNumber."</h3>"); ?> <a href="ProductSeries.php">Return to Series Page</a> </body> </html> PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 05:00:01 2025 UTC |
I am having the same or very similar problem: (There's a bunch more code involved, of course, so I'm just including relevant examples, below.) <-------- START EXAMPLE -------> <...appropriate persistent db access info...> <...data-to-variable assignments...> mysql_db_query("dbX","update tableX set col1='$data1' where ID='$id'"); <...error-reporting code...> echo mysql_affected_rows(); <------ END EXAMPLE ------> Result: no affected rows, no errors, and no update I tried adding a SELECT statement immediately following the UPDATE statement, per this bug report's suggestion: Result: 1 affected row, no errors, and no update So PHP thought 1 row had been updated...but it had not been. This is a piece of script that we have been using successfully for about 4 months, but it started to malfunction about 3 weeks ago. INSERT, and DELETE statements work fine. Version Info/Configuration: FreeBSD 4.4 Release i386 PHP v. 4.1.2 (same problem with 4.0.6, by the way...) Apache/1.3.12 OpenSSL/0.9.6a MySQL v. 3.23.44 Thanks.