problem with odbc, mysql and placeholders

From: Date: Sun, 03 Apr 2005 00:46:46 +0000
Subject: problem with odbc, mysql and placeholders
Groups: php.db 
Request: Send a blank email to php-db+get-39098@lists.php.net to get a copy of this message
I am running into a problem using placeholders in a SELECT statement using odbc_prepare and odbc_execute with a mysql driver from php (version numbers, etc. after the code sample). The following code works just fine for postgresql, but not for mysql: #!/usr/bin/php <?php $conn = odbc_connect('tstdb', 'xxxxx', 'yyyyy'); if ($conn == 0) {
    echo("connect failed");
    $sqlerr = odbc_errormsg($conn);
    echo($sqlerr);
} $stmt = odbc_prepare($conn, 'SELECT firstname, lastname FROM tst where id=?'); $result = odbc_execute($stmt, array(1)); if (!$result) {
    echo("SELECT failed");
    $sqlerr = odbc_errormsg($conn);
    echo($sqlerr);
} while (odbc_fetch_into($stmt, $row)) {
    print $row[0];
    print $row[1];
    print "\n";
} ?> With postgres i get the firstname and lastname as expected, but with mysql, i get some kind of gibberish (stdn_u) ... another interesting thing is that if I change the prepare to use 'where id=1', it works fine for mysql (and postgres for that matter). There is nothing tricky about the table (int id and varchar(20) for the names) and I can do all of this kind of stuff using ODBC from C (unixODBC) with both database systems. Also, UPDATEs using placeholders seem to work fine for MySQL also ... I understand that this may not be a problem with the php odbc code but instead with one of the other layers ... how would i narrow that down? Any other places that I could post this question that might be better than here? I get substantially the same results on an FC3 and a RH9 linux box with the following versions: FC3: php-4.3.10-3.2, php-odbc-4.3.10-3.2, unixODBC-2.2.9-1, MyODBC-2.50.39-19.1, mysql-3.23.58-14 RH9: php-4.2.2-17, php-odbc-4.2.2-17, unixODBC-2.2.3-6, MyODBC-2.50.39-11, mysql-3.23.54a-11 thanks in advance for any help you can provide! jake -- Jake Edge - jake@edge2.net - http://www.edge2.net

« previous php.db (#39098) next »