⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysqli_api.c

📁 linux下安装不上mysql5与php5的可用此关联
💻 C
📖 第 1 页 / 共 5 页
字号:
#endif			RETURN_TRUE;		break;		case 1:			RETURN_FALSE;		break;		default:			RETURN_NULL();		break;	}}/* }}} */#else/* {{{ mixed mysqli_stmt_fetch_mysqlnd */void mysqli_stmt_fetch_mysqlnd(INTERNAL_FUNCTION_PARAMETERS){	MY_STMT 		*stmt;	zval 			*mysql_stmt;	zend_bool		fetched_anything;	enum_func_status ret;		if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);	if (FAIL == (ret = mysqlnd_stmt_fetch(stmt->stmt, &fetched_anything TSRMLS_CC))) {		RETURN_BOOL(FALSE);	} else if (fetched_anything == TRUE) {		RETURN_BOOL(TRUE);	} else {		RETURN_NULL();	}}#endif/* }}} *//* {{{ proto mixed mysqli_stmt_fetch(object stmt) U   Fetch results from a prepared statement into the bound variables */PHP_FUNCTION(mysqli_stmt_fetch){#if !defined(HAVE_MYSQLND)	mysqli_stmt_fetch_libmysql(INTERNAL_FUNCTION_PARAM_PASSTHRU);#else	mysqli_stmt_fetch_mysqlnd(INTERNAL_FUNCTION_PARAM_PASSTHRU);#endif}/* }}} */static void php_add_field_properties(zval *value, MYSQL_FIELD *field TSRMLS_DC){	add_property_utf8_string(value, "name",(field->name ? field->name : ""), ZSTR_DUPLICATE);	add_property_utf8_string(value, "orgname",(field->org_name ? field->org_name : ""), ZSTR_DUPLICATE);	add_property_utf8_string(value, "table",(field->table ? field->table : ""), ZSTR_DUPLICATE);	add_property_utf8_string(value, "orgtable",(field->org_table ? field->org_table : ""), ZSTR_DUPLICATE);	add_property_utf8_string(value, "def",(field->def ? field->def : ""), ZSTR_DUPLICATE);	add_property_long(value, "max_length", field->max_length);	add_property_long(value, "length", field->length);	add_property_long(value, "charsetnr", field->charsetnr);	add_property_long(value, "flags", field->flags);	add_property_long(value, "type", field->type);	add_property_long(value, "decimals", field->decimals);}/* {{{ proto mixed mysqli_fetch_field (object result) U   Get column information from a result and return as an object */PHP_FUNCTION(mysqli_fetch_field) {	MYSQL_RES 	*result;	zval  		*mysql_result;	MYSQL_FIELD *field;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);	if (!(field = mysql_fetch_field(result))) {		RETURN_FALSE;	}	object_init(return_value);	php_add_field_properties(return_value, field TSRMLS_CC);}/* }}} *//* {{{ proto mixed mysqli_fetch_fields (object result) U   Return array of objects containing field meta-data */PHP_FUNCTION(mysqli_fetch_fields) {	MYSQL_RES	*result;	zval  		*mysql_result;	MYSQL_FIELD	*field;	zval 		*obj;	unsigned int i;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);	array_init(return_value);	for (i = 0; i < mysql_num_fields(result); i++) {		field = mysql_fetch_field_direct(result, i);		MAKE_STD_ZVAL(obj);		object_init(obj);		php_add_field_properties(obj, field TSRMLS_CC);		add_index_zval(return_value, i, obj);	}}/* }}} *//* {{{ proto mixed mysqli_fetch_field_direct (object result, int offset) U   Fetch meta-data for a single field */PHP_FUNCTION(mysqli_fetch_field_direct) {	MYSQL_RES	*result;	zval		*mysql_result;	MYSQL_FIELD *field;	long 		offset;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_result, mysqli_result_class_entry, &offset) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);		if (offset < 0 || offset >= mysql_num_fields(result)) {		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field offset is invalid for resultset");		RETURN_FALSE; 	}	if (!(field = mysql_fetch_field_direct(result,offset))) {		RETURN_FALSE;	}	object_init(return_value);	php_add_field_properties(return_value, field TSRMLS_CC);}/* }}} *//* {{{ proto mixed mysqli_fetch_lengths (object result) U   Get the length of each output in a result */PHP_FUNCTION(mysqli_fetch_lengths) {	MYSQL_RES		*result;	zval			*mysql_result;	unsigned int	i;	unsigned long	*ret;		if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);	if (!(ret = mysql_fetch_lengths(result))) {		RETURN_FALSE;	}	array_init(return_value);	for (i = 0; i < mysql_num_fields(result); i++) {		add_index_long(return_value, i, ret[i]);		}}/* }}} *//* {{{ proto array mysqli_fetch_row (object result) U   Get a result row as an enumerated array */PHP_FUNCTION(mysqli_fetch_row) {#if !defined(HAVE_MYSQLND)	php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQLI_NUM, 0);#else	MYSQL_RES		*result;	zval			*mysql_result;		if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);	mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, return_value); #endif}/* }}} *//* {{{ proto int mysqli_field_count(object link) U   Fetch the number of fields returned by the last query for the given link*/PHP_FUNCTION(mysqli_field_count) {	MY_MYSQL 	*mysql;	zval  		*mysql_link;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	RETURN_LONG(mysql_field_count(mysql->mysql));}/* }}} *//* {{{ proto int mysqli_field_seek(object result, int fieldnr) U   Set result pointer to a specified field offset*/PHP_FUNCTION(mysqli_field_seek){	MYSQL_RES		*result;	zval			*mysql_result;	unsigned long	fieldnr;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_result, mysqli_result_class_entry, &fieldnr) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);	if (fieldnr < 0 || fieldnr >= mysql_num_fields(result)) {		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid field offset");		RETURN_FALSE; 	}		mysql_field_seek(result, fieldnr);	RETURN_TRUE;}/* }}} *//* {{{ proto int mysqli_field_tell(object result) U   Get current field offset of result pointer */PHP_FUNCTION(mysqli_field_tell){	MYSQL_RES	*result;	zval		*mysql_result;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);		RETURN_LONG(mysql_field_tell(result));}/* }}} *//* {{{ proto void mysqli_free_result(object result) U   Free query result memory for the given result handle */PHP_FUNCTION(mysqli_free_result) {	MYSQL_RES	*result;	zval		*mysql_result;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);	mysqli_free_result(result, FALSE);	MYSQLI_CLEAR_RESOURCE(&mysql_result);	}/* }}} *//* {{{ proto string mysqli_get_client_info(void) U   Get MySQL client info */PHP_FUNCTION(mysqli_get_client_info){	char *info = (char *)mysql_get_client_info();	RETURN_UTF8_STRING(info, ZSTR_DUPLICATE);}/* }}} *//* {{{ proto int mysqli_get_client_version(void) U   Get MySQL client info */PHP_FUNCTION(mysqli_get_client_version){	RETURN_LONG((long)mysql_get_client_version());}/* }}} *//* {{{ proto string mysqli_get_host_info (object link) U   Get MySQL host info */PHP_FUNCTION(mysqli_get_host_info) {	MY_MYSQL	*mysql;	zval  		*mysql_link = NULL;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	RETURN_UTF8_STRING(mysql->mysql->host_info, ZSTR_DUPLICATE);}/* }}} *//* {{{ proto int mysqli_get_proto_info(object link) U   Get MySQL protocol information */PHP_FUNCTION(mysqli_get_proto_info){	MY_MYSQL 	*mysql;	zval  		*mysql_link = NULL;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	RETURN_LONG(mysql_get_proto_info(mysql->mysql));}/* }}} *//* {{{ proto string mysqli_get_server_info(object link) U   Get MySQL server info */PHP_FUNCTION(mysqli_get_server_info){	MY_MYSQL	*mysql;	zval	  	*mysql_link = NULL;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	RETURN_UTF8_STRING((char *)mysql_get_server_info(mysql->mysql), ZSTR_DUPLICATE);}/* }}} *//* {{{ proto int mysqli_get_server_version(object link) U   Return the MySQL version for the server referenced by the given link */PHP_FUNCTION(mysqli_get_server_version){	MY_MYSQL	*mysql;	zval		*mysql_link = NULL;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	RETURN_LONG(mysql_get_server_version(mysql->mysql));}/* }}} *//* {{{ proto string mysqli_info(object link) U   Get information about the most recent query */PHP_FUNCTION(mysqli_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(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	info = mysql_info(mysql->mysql);	RETURN_UTF8_STRING((info) ? info : "", ZSTR_DUPLICATE);}/* }}} *//* {{{ proto resource mysqli_init(void) U   Initialize mysqli and return a resource for use with mysql_real_connect */PHP_FUNCTION(mysqli_init){	MYSQLI_RESOURCE *mysqli_resource;	MY_MYSQL *mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));#if !defined(HAVE_MYSQLND)	if (!(mysql->mysql = mysql_init(NULL)))#else	if (!(mysql->mysql = mysql_init(FALSE)))#endif	{		efree(mysql);		RETURN_FALSE;	}	mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));	mysqli_resource->ptr = (void *)mysql;	mysqli_resource->status = MYSQLI_STATUS_INITIALIZED;	if (!getThis() || !instanceof_function(Z_OBJCE_P(getThis()), mysqli_link_class_entry TSRMLS_CC)) {		MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry);		} else {		((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->ptr = mysqli_resource;	}}/* }}} *//* {{{ proto mixed mysqli_insert_id(object link) U   Get the ID generated from the previous INSERT operation */PHP_FUNCTION(mysqli_insert_id){	MY_MYSQL		*mysql;	my_ulonglong 	rc;	zval  			*mysql_link;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	rc = mysql_insert_id(mysql->mysql);	MYSQLI_RETURN_LONG_LONG(rc)}/* }}} *//* {{{ proto bool mysqli_kill(object link, int processid) U   Kill a mysql process on the server */PHP_FUNCTION(mysqli_kill){	MY_MYSQL 	*mysql;	zval  		*mysql_link;	long   		processid;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_link, mysqli_link_class_entry, &processid) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	if (processid <= 0) {		php_error_docref(NULL TSRMLS_CC, E_WARNING, "processid should have positive value");		RETURN_FALSE;	}	if (mysql_kill(mysql->mysql, processid)) {		MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);		RETURN_FALSE;	}	RETURN_TRUE;}/* }}} *//* {{{ proto void mysqli_set_local_infile_default(object link) U   unsets user defined handler for load local infile command */PHP_FUNCTION(mysqli_set_local_infile_default)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -