summaryrefslogtreecommitdiff
path: root/ext/mysql/tests/mysql_fetch_object.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysql/tests/mysql_fetch_object.phpt')
-rw-r--r--ext/mysql/tests/mysql_fetch_object.phpt152
1 files changed, 152 insertions, 0 deletions
diff --git a/ext/mysql/tests/mysql_fetch_object.phpt b/ext/mysql/tests/mysql_fetch_object.phpt
new file mode 100644
index 0000000..c11631e
--- /dev/null
+++ b/ext/mysql/tests/mysql_fetch_object.phpt
@@ -0,0 +1,152 @@
+--TEST--
+mysql_fetch_object()
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifconnectfailure.inc');
+?>
+--FILE--
+<?php
+include "connect.inc";
+
+$tmp = NULL;
+$link = NULL;
+
+if (!is_null($tmp = @mysql_fetch_object()))
+ printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
+
+if (false !== ($tmp = @mysql_fetch_object($link)))
+ printf("[002] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
+
+require('table.inc');
+if (!$res = mysql_query("SELECT id AS ID, label FROM test AS TEST ORDER BY id LIMIT 5", $link)) {
+ printf("[003] [%d] %s\n", mysql_errno($link), mysql_error($link));
+}
+
+var_dump(mysql_fetch_object($res));
+
+class mysql_fetch_object_test {
+
+ public $a = null;
+ public $b = null;
+
+ public function toString() {
+ var_dump($this);
+ }
+}
+
+var_dump(mysql_fetch_object($res, 'mysql_fetch_object_test'));
+
+class mysql_fetch_object_construct extends mysql_fetch_object_test {
+
+ public function __construct($a, $b) {
+ $this->a = $a;
+ $this->b = $b;
+ }
+
+}
+
+var_dump(mysql_fetch_object($res, 'mysql_fetch_object_construct', null));
+var_dump(mysql_fetch_object($res, 'mysql_fetch_object_construct', array('a')));
+var_dump(mysql_fetch_object($res, 'mysql_fetch_object_construct', array('a', 'b')));
+var_dump(mysql_fetch_object($res, 'mysql_fetch_object_construct', array('a', 'b', 'c')));
+var_dump(mysql_fetch_object($res, 'mysql_fetch_object_construct', "no array and not null"));
+var_dump(mysql_fetch_object($res));
+var_dump(mysql_fetch_object($res, 'mysql_fetch_object_construct', array('a', 'b')));
+
+class mysql_fetch_object_private_construct {
+ private function __construct($a, $b) {
+ var_dump($a);
+ }
+}
+var_dump(mysql_fetch_object($res, 'mysql_fetch_object_private_construct', array('a', 'b')));
+
+mysql_free_result($res);
+
+if (!$res = mysql_query("SELECT id AS ID, label FROM test AS TEST", $link)) {
+ printf("[009] [%d] %s\n", mysql_errno($link), mysql_error($link));
+}
+
+mysql_free_result($res);
+
+var_dump(mysql_fetch_object($res));
+
+// Fatal error, script execution will end
+var_dump(mysql_fetch_object($res, 'this_class_does_not_exist'));
+
+mysql_close($link);
+print "done!";
+?>
+--CLEAN--
+<?php
+require_once("clean_table.inc");
+?>
+--EXPECTF--
+object(stdClass)#%d (2) {
+ [%u|b%"ID"]=>
+ %unicode|string%(1) "1"
+ [%u|b%"label"]=>
+ %unicode|string%(1) "a"
+}
+object(mysql_fetch_object_test)#%d (4) {
+ [%u|b%"a"]=>
+ NULL
+ [%u|b%"b"]=>
+ NULL
+ [%u|b%"ID"]=>
+ %unicode|string%(1) "2"
+ [%u|b%"label"]=>
+ %unicode|string%(1) "b"
+}
+
+Warning: Missing argument 1 for mysql_fetch_object_construct::__construct() in %s on line %d
+
+Warning: Missing argument 2 for mysql_fetch_object_construct::__construct() in %s on line %d
+
+Notice: Undefined variable: a in %s on line %d
+
+Notice: Undefined variable: b in %s on line %d
+object(mysql_fetch_object_construct)#%d (4) {
+ [%u|b%"a"]=>
+ NULL
+ [%u|b%"b"]=>
+ NULL
+ [%u|b%"ID"]=>
+ %unicode|string%(1) "3"
+ [%u|b%"label"]=>
+ %unicode|string%(1) "c"
+}
+
+Warning: Missing argument 2 for mysql_fetch_object_construct::__construct() in %s on line %d
+
+Notice: Undefined variable: b in %s on line %d
+object(mysql_fetch_object_construct)#%d (4) {
+ [%u|b%"a"]=>
+ %unicode|string%(1) "a"
+ [%u|b%"b"]=>
+ NULL
+ [%u|b%"ID"]=>
+ %unicode|string%(1) "4"
+ [%u|b%"label"]=>
+ %unicode|string%(1) "d"
+}
+object(mysql_fetch_object_construct)#%d (4) {
+ [%u|b%"a"]=>
+ %unicode|string%(1) "a"
+ [%u|b%"b"]=>
+ %unicode|string%(1) "b"
+ [%u|b%"ID"]=>
+ %unicode|string%(1) "5"
+ [%u|b%"label"]=>
+ %unicode|string%(1) "e"
+}
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+Warning: mysql_fetch_object(): %d is not a valid MySQL result resource in %s on line %d
+bool(false)
+
+Fatal error: Class 'this_class_does_not_exist' not found in %s on line %d