--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())); } $db->exec('DROP TABLE IF EXISTS test'); print "done!"; ?> --EXPECTF-- Testing emulated PS... int(3) int(2) Testing native PS... int(4) int(2) done!