bug44327.phpt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. --TEST--
  2. Bug #44327 (PDORow::queryString property & numeric offsets / Crash)
  3. --EXTENSIONS--
  4. pdo_mysql
  5. --SKIPIF--
  6. <?php
  7. require_once(__DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
  8. MySQLPDOTest::skip();
  9. $db = MySQLPDOTest::factory();
  10. ?>
  11. --FILE--
  12. <?php
  13. require_once(__DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
  14. $db = MySQLPDOTest::factory();
  15. $db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true);
  16. $stmt = $db->prepare("SELECT 1 AS \"one\"");
  17. $stmt->execute();
  18. $row = $stmt->fetch(PDO::FETCH_LAZY);
  19. var_dump($row);
  20. var_dump($row->{0});
  21. var_dump($row->one);
  22. var_dump($row->queryString);
  23. print "----------------------------------\n";
  24. @$db->exec("DROP TABLE test");
  25. $db->exec("CREATE TABLE test (id INT)");
  26. $db->exec("INSERT INTO test(id) VALUES (1)");
  27. $stmt = $db->prepare("SELECT id FROM test");
  28. $stmt->execute();
  29. $row = $stmt->fetch(PDO::FETCH_LAZY);
  30. var_dump($row);
  31. var_dump($row->queryString);
  32. @$db->exec("DROP TABLE test");
  33. print "----------------------------------\n";
  34. $stmt = $db->prepare('foo');
  35. @$stmt->execute();
  36. $row = $stmt->fetch();
  37. var_dump($row->queryString);
  38. ?>
  39. --EXPECTF--
  40. object(PDORow)#%d (2) {
  41. ["queryString"]=>
  42. string(17) "SELECT 1 AS "one""
  43. ["one"]=>
  44. string(1) "1"
  45. }
  46. string(1) "1"
  47. string(1) "1"
  48. string(17) "SELECT 1 AS "one""
  49. ----------------------------------
  50. object(PDORow)#5 (2) {
  51. ["queryString"]=>
  52. string(19) "SELECT id FROM test"
  53. ["id"]=>
  54. string(1) "1"
  55. }
  56. string(19) "SELECT id FROM test"
  57. ----------------------------------
  58. Warning: Attempt to read property "queryString" on bool in %s on line %d
  59. NULL