Merge branch 'master' of git.php.net:php-src

This commit is contained in:
Xinchen Hui 2012-10-18 23:34:12 +08:00
commit 33ddfbe12f
3 changed files with 42 additions and 15 deletions

View File

@ -566,14 +566,17 @@ PHP_FUNCTION(mysqli_character_set_name)
{
MY_MYSQL *mysql;
zval *mysql_link;
const char *cs_name;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
MYSQLI_FETCH_RESOURCE_CONN(mysql, &mysql_link, MYSQLI_STATUS_VALID);
RETURN_STRING((char *)mysql_character_set_name(mysql->mysql), 1);
cs_name = mysql_character_set_name(mysql->mysql);
if (cs_name) {
RETURN_STRING(cs_name, 1);
}
}
/* }}} */
@ -732,12 +735,16 @@ PHP_FUNCTION(mysqli_error)
{
MY_MYSQL *mysql;
zval *mysql_link;
const char *err;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
MYSQLI_FETCH_RESOURCE_CONN(mysql, &mysql_link, MYSQLI_STATUS_VALID);
RETURN_STRING((char *)mysql_error(mysql->mysql),1);
err = mysql_error(mysql->mysql);
if (err) {
RETURN_STRING(err, 1);
}
}
/* }}} */
@ -1268,7 +1275,10 @@ PHP_FUNCTION(mysqli_free_result)
Get MySQL client info */
PHP_FUNCTION(mysqli_get_client_info)
{
RETURN_STRING((char *)mysql_get_client_info(), 1);
const char * info = mysql_get_client_info();
if (info) {
RETURN_STRING(info, 1);
}
}
/* }}} */
@ -1320,15 +1330,18 @@ PHP_FUNCTION(mysqli_get_server_info)
{
MY_MYSQL *mysql;
zval *mysql_link = NULL;
const char *info;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
MYSQLI_FETCH_RESOURCE_CONN(mysql, &mysql_link, MYSQLI_STATUS_VALID);
RETURN_STRING((char *)mysql_get_server_info(mysql->mysql), 1);
info = mysql_get_server_info(mysql->mysql);
if (info) {
RETURN_STRING(info, 1);
}
}
/* }}} */
/* {{{ proto int mysqli_get_server_version(object link)
@ -1361,7 +1374,9 @@ PHP_FUNCTION(mysqli_info)
MYSQLI_FETCH_RESOURCE_CONN(mysql, &mysql_link, MYSQLI_STATUS_VALID);
info = mysql_info(mysql->mysql);
RETURN_STRING((info) ? (char *)info : "", 1);
if (info) {
RETURN_STRING(info, 1);
}
}
/* }}} */
@ -2096,12 +2111,16 @@ PHP_FUNCTION(mysqli_sqlstate)
{
MY_MYSQL *mysql;
zval *mysql_link;
const char *state;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
MYSQLI_FETCH_RESOURCE_CONN(mysql, &mysql_link, MYSQLI_STATUS_VALID);
RETURN_STRING((char *)mysql_sqlstate(mysql->mysql),1);
state = mysql_sqlstate(mysql->mysql);
if (state) {
RETURN_STRING(state, 1);
}
}
/* }}} */
@ -2279,13 +2298,17 @@ PHP_FUNCTION(mysqli_stmt_error)
{
MY_STMT *stmt;
zval *mysql_stmt;
const char * err;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
MYSQLI_FETCH_RESOURCE_STMT(stmt, &mysql_stmt, MYSQLI_STATUS_INITIALIZED);
RETURN_STRING((char *)mysql_stmt_error(stmt->stmt),1);
err = mysql_stmt_error(stmt->stmt);
if (err) {
RETURN_STRING(err, 1);
}
}
/* }}} */
@ -2424,13 +2447,17 @@ PHP_FUNCTION(mysqli_stmt_sqlstate)
{
MY_STMT *stmt;
zval *mysql_stmt;
const char * state;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
MYSQLI_FETCH_RESOURCE_STMT(stmt, &mysql_stmt, MYSQLI_STATUS_VALID);
RETURN_STRING((char *)mysql_stmt_sqlstate(stmt->stmt),1);
state = mysql_stmt_sqlstate(stmt->stmt);
if (state) {
RETURN_STRING(state, 1);
}
}
/* }}} */

View File

@ -295,7 +295,7 @@ mysqli->insert_id = '0'/integer ('0'/integer)
mysqli->sqlstate = '00000'/%unicode|string% ('00000'/%unicode|string%)
mysqli->stat = 'Uptime: %d Threads: %d Questions: %d Slow queries: %d Opens: %d Flush tables: %d Open tables: %d Queries per second avg: %d.%d'/string ('Uptime: %d Threads: %d Questions: %d Slow queries: %d Opens: %d Flush tables: %d Open tables: %d Queries per second avg: %d.%d'/string)
mysqli->host_info = '%s'/%unicode|string% ('%s'/%unicode|string%)
mysqli->info = ''/NULL (''/%unicode|string%)
mysqli->info = ''/NULL (''/NULL)
mysqli->thread_id = '%d'/integer ('%d'/integer)
mysqli->protocol_version = '%d'/integer ('%d'/integer)
mysqli->server_info = '%s'/%unicode|string% ('%s'/%unicode|string%)

View File

@ -21,8 +21,8 @@ require_once('skipifconnectfailure.inc');
printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
// NOTE: empty string, no multiple insert syntax
if (!is_string($tmp = mysqli_info($link)) || ('' != $tmp))
printf("[004] Expecting string/empty, got %s/%s\n", gettype($tmp), $tmp);
if (!is_null($tmp = mysqli_info($link)) || ('' != $tmp))
printf("[004] Expecting null, got %s/%s\n", gettype($tmp), $tmp);
if (!$res = mysqli_query($link, "INSERT INTO test(id, label) VALUES (101, 'a'), (102, 'b')"))
printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
@ -54,8 +54,8 @@ require_once('skipifconnectfailure.inc');
if (!$res = mysqli_query($link, "SELECT 1"))
printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
if (!is_string($tmp = mysqli_info($link)) || ('' != $tmp))
printf("[014] Expecting string/empty, got %s/%s\n", gettype($tmp), $tmp);
if (!is_null($tmp = mysqli_info($link)) || ('' != $tmp))
printf("[014] Expecting null, got %s/%s\n", gettype($tmp), $tmp);
mysqli_free_result($res);
// NOTE: no LOAD DATA INFILE test