ID: 35607 Comment by: YOY at YOY dot YOY Reported By: wseibert at hxcorp dot com Status: Feedback Bug Type: PDO related Operating System: Windows 2k PHP Version: 5CVS-2005-12-08 (snap) Assigned To: wez New Comment:
I made some tests with this table Table name: tbl1 Cloumns: id INTEGER this code work ok: ----------------------- try { $sql='UPDATE tbl1 SET tbl1.id=10' $results = $dbh->query($sql); } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } This code will crash the server: (WHERE 1=1) ----------------------------------- try { $sql='UPDATE tbl1 SET tbl1.id=10 WHERE 1=1' $results = $dbh->query($sql); } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } ---------------------------- I try some bad SQL syntax ("Us543PDATE tbl1 SET tbl1.id=10"), same result server crash. this statment : UPDATE tbl1 SET tbl1.id=5 WHERE tbl1.id=10 after some test surprisly this statment work, but again after some more test again this stament produce crash. hope this information be helpful. Previous Comments: ------------------------------------------------------------------------ [2005-12-09 05:24:37] [EMAIL PROTECTED] Can you provide a CREATE TABLE statement or a small copy of your actual .mdb file, so that I can test against the same schema you're using? ------------------------------------------------------------------------ [2005-12-08 21:34:46] [EMAIL PROTECTED] Assigned to the maintainer. ------------------------------------------------------------------------ [2005-12-08 21:12:16] wseibert at hxcorp dot com Sorry, I know this is going to be difficult to duplicate as I'm connecting to a Access DB on my local machine via ODBC. If you have a Access DB on your system, you just need to set it up in your ODBC Manager and point to that DSN in the script. Once that is done, try doing a Update SQL command via PDO::query, Then try it via PDO::exec. If it works (correctly), it should return the number of rows affected. It crashes for me on the query, and does nothing on the exec. ------------------------------------------------------------------------ [2005-12-08 21:07:57] wseibert at hxcorp dot com <?php try { $dbh = new PDO('odbc:DSN=TEST;driver=Driver do Microsoft Access (*.mdb)','',''); $results = $dbh->query('UPDATE xd17 SET xd17.CCDate = 20051207, xd17.CCTime = 1200, xd17.ModifiedDS = 200512071200 WHERE xd17.XTyp17 = 157 AND xd17.X15A = 51921 AND xd157.X105B = 3300'); } catch (PDOException $e) { print "Error!: ".$e->getMessage()."<br/>"; die(); } ?> ------------------------------------------------------------------------ [2005-12-08 20:58:56] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If possible, make the script source available online and provide an URL to it here. Try to avoid embedding huge scripts into the report. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/35607 -- Edit this bug report at http://bugs.php.net/?id=35607&edit=1