ID: 41639 Updated by: [EMAIL PROTECTED] Reported By: cody dot stockwell at qsicorp dot com -Status: Open +Status: Assigned Bug Type: ODBC related Operating System: Red Hat 4 ES PHP Version: 4.4.7 -Assigned To: +Assigned To: kalowsky
Previous Comments: ------------------------------------------------------------------------ [2007-06-08 18:08:47] cody dot stockwell at qsicorp dot com Description: ------------ The script works fine when talking to Apache(WinXP)/PHP5/DNS [SQL Server]/MS SQL Express 2005, but when I try to get it to run on Apache (Linux)/PHP4/[unixODBC/FreeTDS]/MS SQL Express 2005 I get an error from PHP. If I place variables into the odbc_prepare() statement directly it works fine, but for some reason refuses to replace the '?' parameter in odbc_execute(). Obviously that would negate the security advantage of using odbc_prepare(). So it appears to be a bug in PHP4, but unfortunately the boss is hesitant to install PHP5 or any new version for fear of breaking everything. Reproduce code: --------------- <?php $dsn = "SQLExpress"; $dbuser = "sa"; $dbpass = "mypass"; $dbname = "mydb"; $connect = odbc_connect($dsn, $dbuser, $dbpass); odbc_exec($connect, "use " . $dbname) or die("Failed to connect to database."); $query = odbc_prepare($connect, "SELECT FIRST_NAME, MIDDLE_INITIAL, LAST_NAME FROM mytable WHERE LAST_NAME = ?"); odbc_execute($query, array("Smith")); echo odbc_result_all($query); ?> Expected result: ---------------- FIRST_NAME MIDDLE_INITIAL LAST_NAME Joseph C Smith Travis M Smith 2 Actual result: -------------- Warning: odbc_execute(): SQL error: <�tH� I��5, SQL state 00000 in SQLExecute in /var/www/html/v_contact.php on line 11 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=41639&edit=1