--TEST-- MySQL PDOStatement->columnCount() --SKIPIF-- --FILE-- setAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY, 1); if (1 != $db->getAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY)) printf("[002] Unable to turn on emulated prepared statements\n"); $stmt = $db->prepare("SELECT id, label, '?' as foo FROM test"); $stmt->execute(); var_dump($stmt->columnCount()); $stmt = $db->query('SELECT * FROM test'); var_dump($stmt->columnCount()); } catch (PDOException $e) { printf("[001] %s [%s] %s\n", $e->getMessage(), $db->errorCode(), implode(' ', $db->errorInfo())); } printf("Testing native PS...\n"); try { $db->setAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY, 0); if (0 != $db->getAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY)) printf("[004] Unable to turn off emulated prepared statements\n"); $stmt = $db->prepare("SELECT id, label, '?' as foo, 'TODO - Stored Procedure' as bar FROM test"); $stmt->execute(); var_dump($stmt->columnCount()); $stmt = $db->query('SELECT * FROM test'); var_dump($stmt->columnCount()); } catch (PDOException $e) { printf("[003] %s [%s] %s\n", $e->getMessage(), $db->errorCode(), implode(' ', $db->errorInfo())); } print "done!"; ?> --CLEAN-- --EXPECTF-- Testing emulated PS... int(3) int(2) Testing native PS... int(4) int(2) done!