|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2009-05-29 20:08 UTC] candrews at integralblue dot com
Description: ------------ According to the PDO constants page at http://us3.php.net/manual/en/pdo.constants.php , PDO::PARAM_STMT "Represents a recordset type. Not currently supported by any drivers." It would be nice if PDO supported this type for all drivers in that don't directly support it using emulation, and for drivers do, using the driver implementation (just like how all the other prepared statement parameter types work). Reproduce code: --------------- Right now, implementing a prepared statement query involving arrays is (I believe) impossible. <?php $sth = $dbh->prepare('SELECT * FROM users WHERE username in :usernames); $sth->bindParam(":usernames", array("alice","bob","dave"), PDO::PARAM_STMT); $sth->execute(); ?> That would be very nice to be able to do - and I believe that is the correct syntax. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Dec 04 03:00:01 2025 UTC |
I believe the correct syntax would be: <?php $sth = $dbh->prepare("SELECT * FROM users JOIN :usernames as mytab on users.name = mytab.username"); $sth2 = $dbh2->execute("select username, userid, accesslevel from permissions where accesslevel='admin'") $sth->bindParam(":usernames", $sth2, PDO::PARAM_STMT); $sth->execute(); ?> PDO::PARAM_ARRAY would make more sense for an associative array argument, which could be used in the same way. An example prepared statement for either case would be: SELECT * FROM users JOIN ( SELECT 'user1' as username, 1 as userid, 'admin' as accesslevel UNION ALL SELECT 'user5' as username, 5 as userid, 'admin' as accesslevel ) as mytab on users.name = mytab.username