bug70862.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --TEST--
  2. MySQL Prepared Statements and BLOBs
  3. --SKIPIF--
  4. <?php
  5. require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
  6. require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
  7. MySQLPDOTest::skip();
  8. ?>
  9. --FILE--
  10. <?php
  11. require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
  12. $db = MySQLPDOTest::factory();
  13. $db->exec('DROP TABLE IF EXISTS test');
  14. $db->exec(sprintf('CREATE TABLE test(id INT, label BLOB)'));
  15. $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
  16. $db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true);
  17. class HelloWrapper {
  18. public function stream_open() { return true; }
  19. public function stream_eof() { return true; }
  20. public function stream_read() { return NULL; }
  21. public function stream_stat() { return array(); }
  22. }
  23. stream_wrapper_register("hello", "HelloWrapper");
  24. $f = fopen("hello://there", "r");
  25. $stmt = $db->prepare('INSERT INTO test(id, label) VALUES (1, :para)');
  26. $stmt->bindParam(":para", $f, PDO::PARAM_LOB);
  27. $stmt->execute();
  28. var_dump($f);
  29. print "done!";
  30. ?>
  31. --CLEAN--
  32. <?php
  33. require dirname(__FILE__) . '/mysql_pdo_test.inc';
  34. $db = MySQLPDOTest::factory();
  35. $db->exec('DROP TABLE IF EXISTS test');
  36. ?>
  37. --EXPECT--
  38. string(0) ""
  39. done!