bug75177.phpt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. --TEST--
  2. PDO MySQL Bug #75177 Type 'bit' is fetched as unexpected string
  3. --EXTENSIONS--
  4. pdo_mysql
  5. --SKIPIF--
  6. <?php
  7. require_once(__DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
  8. MySQLPDOTest::skip();
  9. if (!MySQLPDOTest::isPDOMySQLnd()) die('skip only for mysqlnd');
  10. ?>
  11. --FILE--
  12. <?php
  13. require_once(__DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
  14. $pdo = MySQLPDOTest::factory();
  15. $tbl = "test";
  16. $pdo->query("DROP TABLE IF EXISTS $tbl");
  17. $pdo->query("CREATE TABLE $tbl (`bit` bit(8)) ENGINE=InnoDB");
  18. $pdo->query("INSERT INTO $tbl (`bit`) VALUES (1)");
  19. $pdo->query("INSERT INTO $tbl (`bit`) VALUES (0b011)");
  20. $pdo->query("INSERT INTO $tbl (`bit`) VALUES (0b01100)");
  21. $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
  22. $ret = $pdo->query("SELECT * FROM $tbl")->fetchAll();
  23. foreach ($ret as $i) {
  24. var_dump($i["bit"]);
  25. }
  26. $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
  27. $ret = $pdo->query("SELECT * FROM $tbl")->fetchAll();
  28. foreach ($ret as $i) {
  29. var_dump($i["bit"]);
  30. }
  31. ?>
  32. --CLEAN--
  33. <?php
  34. require dirname(__FILE__) . '/mysql_pdo_test.inc';
  35. MySQLPDOTest::dropTestTable();
  36. ?>
  37. --EXPECT--
  38. int(1)
  39. int(3)
  40. int(12)
  41. int(1)
  42. int(3)
  43. int(12)