sqlite3_30_blobopen.phpt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. --TEST--
  2. SQLite3::blobOpen stream test
  3. --EXTENSIONS--
  4. sqlite3
  5. --FILE--
  6. <?php
  7. require_once(__DIR__ . '/new_db.inc');
  8. require_once(__DIR__ . '/stream_test.inc');
  9. define('TIMENOW', time());
  10. echo "Creating Table\n";
  11. var_dump($db->exec('CREATE TABLE test (id STRING, data BLOB)'));
  12. echo "PREPARING insert\n";
  13. $insert_stmt = $db->prepare("INSERT INTO test (id, data) VALUES (?, ?)");
  14. echo "BINDING Parameter\n";
  15. var_dump($insert_stmt->bindValue(1, 'a', SQLITE3_TEXT));
  16. var_dump($insert_stmt->bindValue(2, 'TEST TEST', SQLITE3_BLOB));
  17. $insert_stmt->execute();
  18. echo "Closing statement\n";
  19. var_dump($insert_stmt->close());
  20. $stream = $db->openBlob('test', 'data', 1);
  21. var_dump($stream);
  22. echo "Stream Contents\n";
  23. var_dump(stream_get_contents($stream));
  24. echo "Writing to read-only stream\n";
  25. var_dump(fwrite($stream, 'ABCD'));
  26. echo "Closing Stream\n";
  27. var_dump(fclose($stream));
  28. echo "Opening stream in write mode\n";
  29. $stream = $db->openBlob('test', 'data', 1, 'main', SQLITE3_OPEN_READWRITE);
  30. var_dump($stream);
  31. echo "Writing to blob\n";
  32. var_dump(fwrite($stream, 'ABCD'));
  33. echo "Stream Contents\n";
  34. fseek($stream, 0);
  35. var_dump(stream_get_contents($stream));
  36. echo "Expanding blob size\n";
  37. var_dump(fwrite($stream, 'ABCD ABCD ABCD'));
  38. echo "Closing Stream\n";
  39. var_dump(fclose($stream));
  40. echo "Closing database\n";
  41. var_dump($db->close());
  42. echo "Done\n";
  43. ?>
  44. --EXPECTF--
  45. Creating Table
  46. bool(true)
  47. PREPARING insert
  48. BINDING Parameter
  49. bool(true)
  50. bool(true)
  51. Closing statement
  52. bool(true)
  53. resource(%d) of type (stream)
  54. Stream Contents
  55. string(9) "TEST TEST"
  56. Writing to read-only stream
  57. Warning: fwrite(): Can't write to blob stream: is open as read only in %s on line %d
  58. bool(false)
  59. Closing Stream
  60. bool(true)
  61. Opening stream in write mode
  62. resource(%d) of type (stream)
  63. Writing to blob
  64. int(4)
  65. Stream Contents
  66. string(9) "ABCD TEST"
  67. Expanding blob size
  68. Warning: fwrite(): It is not possible to increase the size of a BLOB in %s on line %d
  69. bool(false)
  70. Closing Stream
  71. bool(true)
  72. Closing database
  73. bool(true)
  74. Done