uw Wed May 27 17:50:09 2009 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/mysqli/tests mysqli_stmt_execute.phpt
Log:
Testing a little further into the direction of a possible mysqlnd vs.
libmysql compatibility break or a libmysql bug. It is not clearly stated in the
MySQL C-API documentation what excactly happens on stmt_reset().
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_stmt_execute.phpt?r1=1.2.2.3&r2=1.2.2.4&diff_format=u
Index: php-src/ext/mysqli/tests/mysqli_stmt_execute.phpt
diff -u php-src/ext/mysqli/tests/mysqli_stmt_execute.phpt:1.2.2.3
php-src/ext/mysqli/tests/mysqli_stmt_execute.phpt:1.2.2.4
--- php-src/ext/mysqli/tests/mysqli_stmt_execute.phpt:1.2.2.3 Thu Apr 24
14:22:19 2008
+++ php-src/ext/mysqli/tests/mysqli_stmt_execute.phpt Wed May 27 17:50:09 2009
@@ -62,56 +62,66 @@
if (!$stmt = mysqli_stmt_init($link))
printf("[013] [%d] %s\n", mysqli_errno($link),
mysqli_error($link));
- if (!mysqli_stmt_prepare($stmt, "SELECT id FROM test ORDER BY id LIMIT
1"))
+ if (!mysqli_stmt_prepare($stmt, "SELECT id FROM test ORDER BY id LIMIT
?"))
printf("[014] [%d] %s\n", mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
+ $limit = 1;
+ if (!mysqli_stmt_bind_param($stmt, "i", $limit))
+ printf("[015] [%d] %s\n", mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
+
if (true !== ($tmp = mysqli_stmt_execute($stmt)))
- printf("[015] Expecting boolean/true, got %s/%s. [%d] %s\n",
+ printf("[016] Expecting boolean/true, got %s/%s. [%d] %s\n",
gettype($tmp), $tmp, mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
$id = null;
if (!mysqli_stmt_bind_result($stmt, $id) || !mysqli_stmt_fetch($stmt))
- printf("[016] [%d] %s\n", mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
+ printf("[017] [%d] %s\n", mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
if ($id !== 1)
- printf("[017] Expecting int/1 got %s/%s\n", gettype($id), $id);
+ printf("[018] Expecting int/1 got %s/%s\n", gettype($id), $id);
if (true !== ($tmp = mysqli_stmt_reset($stmt)))
- printf("[018] Expecting boolean/true, got %s/%s. [%d] %s\n",
+ printf("[019] Expecting boolean/true, got %s/%s. [%d] %s\n",
gettype($tmp), $tmp, mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
- printf("Don't know what we should expect\n");
- var_dump(mysqli_stmt_execute($stmt));
- var_dump(mysqli_stmt_fetch($stmt));
+ if (true !== ($tmp = mysqli_stmt_execute($stmt)))
+ printf("[020] Expecting boolean/true after reset to prepare
status, got %s/%s. [%d] %s\n",
+ gettype($tmp), $tmp, mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
+
+ $id = null;
+ if (!mysqli_stmt_fetch($stmt))
+ printf("[021] [%d] %s\n", mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
+
+ if ($id !== 1)
+ printf("[022] Expecting int/1 got %s/%s\n", gettype($id), $id);
mysqli_stmt_close($stmt);
if (!$stmt = mysqli_stmt_init($link))
- printf("[019] [%d] %s\n", mysqli_errno($link),
mysqli_error($link));
+ printf("[023] [%d] %s\n", mysqli_errno($link),
mysqli_error($link));
if (!mysqli_stmt_prepare($stmt, "SELECT id FROM test ORDER BY id LIMIT
1"))
- printf("[020] [%d] %s\n", mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
+ printf("[024] [%d] %s\n", mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
if (true !== ($tmp = mysqli_stmt_execute($stmt)))
- printf("[021] Expecting boolean/true, got %s/%s. [%d] %s\n",
+ printf("[025] Expecting boolean/true, got %s/%s. [%d] %s\n",
gettype($tmp), $tmp, mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
if (true !== ($tmp = mysqli_stmt_reset($stmt)))
- printf("[022] Expecting boolean/true, got %s/%s. [%d] %s\n",
+ printf("[026] Expecting boolean/true, got %s/%s. [%d] %s\n",
gettype($tmp), $tmp, mysqli_stmt_errno($stmt),
mysqli_stmt_error($stmt));
- printf("Don't know what we should expect\n");
var_dump(mysqli_stmt_execute($stmt));
var_dump(mysqli_stmt_fetch($stmt));
mysqli_kill($link, mysqli_thread_id($link));
if (false !== ($tmp = mysqli_stmt_execute($stmt)))
- printf("[023] Expecting boolean/false, got %s/%s\n",
gettype($tmp), $tmp);
+ printf("[027] Expecting boolean/false, got %s/%s\n",
gettype($tmp), $tmp);
mysqli_stmt_close($stmt);
if (NULL !== ($tmp = mysqli_stmt_execute($stmt)))
- printf("[024] Expecting NULL, got %s/%s\n", gettype($tmp),
$tmp);
+ printf("[028] Expecting NULL, got %s/%s\n", gettype($tmp),
$tmp);
mysqli_close($link);
print "done!";
@@ -122,6 +132,9 @@
Warning: mysqli_stmt_execute(): invalid object or resource mysqli_stmt
in %s on line %d
+bool(true)
+bool(true)
+[027] Expecting boolean/false, got boolean/1
Warning: mysqli_stmt_execute(): Couldn't fetch mysqli_stmt in %s on line %d
done!
\ No newline at end of file
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php