bug_pecl_12925.phpt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. --TEST--
  2. PDO MySQL PECL bug #1295 (http://pecl.php.net/bugs/bug.php?id=12925)
  3. --SKIPIF--
  4. <?php
  5. if (!extension_loaded('pdo') || !extension_loaded('pdo_mysql')) die('skip not loaded');
  6. require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
  7. require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
  8. MySQLPDOTest::skip();
  9. $db = MySQLPDOTest::factory();
  10. ?>
  11. --FILE--
  12. <?php
  13. require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
  14. $db = MySQLPDOTest::factory();
  15. function bug_pecl_1295($db) {
  16. $db->exec('DROP TABLE IF EXISTS test');
  17. $db->exec('CREATE TABLE test(id CHAR(1))');
  18. $db->exec("INSERT INTO test(id) VALUES ('a')");
  19. $stmt = $db->prepare("UPDATE test SET id = 'b'");
  20. $stmt->execute();
  21. $stmt = $db->prepare("UPDATE test SET id = 'c'");
  22. $stmt->execute();
  23. $stmt = $db->prepare('SELECT id FROM test');
  24. $stmt->execute();
  25. var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
  26. $stmt->closeCursor();
  27. }
  28. printf("Emulated...\n");
  29. $db = MySQLPDOTest::factory();
  30. $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);
  31. bug_pecl_1295($db);
  32. printf("Native...\n");
  33. $db = MySQLPDOTest::factory();
  34. $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
  35. bug_pecl_1295($db);
  36. $db->exec('DROP TABLE IF EXISTS test');
  37. print "done!";
  38. ?>
  39. --EXPECTF--
  40. Emulated...
  41. array(1) {
  42. [0]=>
  43. array(1) {
  44. [%u|b%"id"]=>
  45. %unicode|string%(1) "c"
  46. }
  47. }
  48. Native...
  49. array(1) {
  50. [0]=>
  51. array(1) {
  52. [%u|b%"id"]=>
  53. %unicode|string%(1) "c"
  54. }
  55. }
  56. done!