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

📄 mysqli_nonapi.c

📁 linux下安装不上mysql5与php5的可用此关联
💻 C
📖 第 1 页 / 共 2 页
字号:
		                 "MYSQLI_FETCH_ASSOC or MYSQLI_FETCH_BOTH");		RETURN_FALSE;	}	mysqlnd_fetch_all(result, mode, return_value);}/* }}} *//* {{{ proto array mysqli_cache_stats(void) U   Returns statistics about the zval cache */PHP_FUNCTION(mysqli_get_cache_stats) {	if (ZEND_NUM_ARGS()) {		WRONG_PARAM_COUNT;	}	mysqlnd_palloc_stats(MyG(mysqlnd_zval_cache), return_value);}/* }}} *//* {{{ proto array mysqli_get_client_stats(void)   Returns statistics about the zval cache */PHP_FUNCTION(mysqli_get_client_stats) {	if (ZEND_NUM_ARGS()) {		WRONG_PARAM_COUNT;	}	mysqlnd_get_client_stats(return_value);}/* }}} *//* {{{ proto array mysqli_get_connection_stats(void)   Returns statistics about the zval cache */PHP_FUNCTION(mysqli_get_connection_stats) {	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);	mysqlnd_get_connection_stats(mysql->mysql, return_value);}#endif/* }}} *//* {{{ proto mixed mysqli_fetch_object (object result [, string class_name [, NULL|array ctor_params]]) U   Fetch a result row as an object */PHP_FUNCTION(mysqli_fetch_object) {	php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQLI_ASSOC, 1);	/* todo: mysqlnd support */}/* }}} *//* {{{ proto bool mysqli_multi_query(object link, string query) U   allows to execute multiple queries  */PHP_FUNCTION(mysqli_multi_query){	MY_MYSQL		*mysql;	zval			*mysql_link;	char			*query;	int				query_len;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os&", &mysql_link, mysqli_link_class_entry, 									 &query, &query_len, UG(utf8_conv)) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	MYSQLI_ENABLE_MQ;		if (mysql_real_query(mysql->mysql, query, query_len)) {		MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);		RETURN_FALSE;	} 	RETURN_TRUE;}/* }}} *//* {{{ proto mixed mysqli_query(object link, string query [,int resultmode]) U */PHP_FUNCTION(mysqli_query){	MY_MYSQL			*mysql;	zval				*mysql_link;	MYSQLI_RESOURCE		*mysqli_resource;	MYSQL_RES 			*result;	char				*query;	int					query_len;	unsigned long 		resultmode = MYSQLI_STORE_RESULT;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os&|l", &mysql_link, mysqli_link_class_entry, 									 &query, &query_len, UG(utf8_conv), &resultmode) == FAILURE) {		return;	}	if (resultmode != MYSQLI_USE_RESULT && resultmode != MYSQLI_STORE_RESULT) {		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid value for resultmode");		RETURN_FALSE;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	if (!query_len) {		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Empty query");		RETURN_FALSE;	}	MYSQLI_DISABLE_MQ;	if (mysql_real_query(mysql->mysql, query, query_len)) {		MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);		RETURN_FALSE;	}	if (!mysql_field_count(mysql->mysql)) {		/* no result set - not a SELECT */		if (MyG(report_mode) & MYSQLI_REPORT_INDEX) {			php_mysqli_report_index(query, mysqli_server_status(mysql->mysql) TSRMLS_CC);		}		RETURN_TRUE;	}	result = (resultmode == MYSQLI_USE_RESULT) ? mysql_use_result(mysql->mysql) : mysql_store_result(mysql->mysql);	if (!result) {		php_mysqli_throw_sql_exception((char *)mysql_sqlstate(mysql->mysql), mysql_errno(mysql->mysql) TSRMLS_CC,										"%s", mysql_error(mysql->mysql)); 		RETURN_FALSE;	}	if (MyG(report_mode) & MYSQLI_REPORT_INDEX) {		php_mysqli_report_index(query, mysqli_server_status(mysql->mysql) TSRMLS_CC);	}	mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));	mysqli_resource->ptr = (void *)result;	mysqli_resource->status = MYSQLI_STATUS_VALID;	MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry);}/* }}} *//* {{{ proto object mysqli_get_warnings(object link) U */ PHP_FUNCTION(mysqli_get_warnings){	MY_MYSQL			*mysql;	zval				*mysql_link;	MYSQLI_RESOURCE		*mysqli_resource;	MYSQLI_WARNING		*w;	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);	if (mysql_warning_count(mysql->mysql)) {		w = php_get_warnings(mysql->mysql TSRMLS_CC); 	} else {		RETURN_FALSE;	}	mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));	mysqli_resource->ptr = mysqli_resource->info = (void *)w;	mysqli_resource->status = MYSQLI_STATUS_INITIALIZED;	MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry);	}/* }}} *//* {{{ proto object mysqli_stmt_get_warnings(object link) U */ PHP_FUNCTION(mysqli_stmt_get_warnings){	MY_STMT				*stmt;	zval				*stmt_link;	MYSQLI_RESOURCE		*mysqli_resource;	MYSQLI_WARNING		*w;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &stmt_link, mysqli_stmt_class_entry) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(stmt, MY_STMT*, &stmt_link, "mysqli_stmt", MYSQLI_STATUS_VALID);	if (mysqli_stmt_warning_count(stmt->stmt)) {		w = php_get_warnings(mysqli_stmt_get_connection(stmt->stmt) TSRMLS_CC); 	} else {		RETURN_FALSE;	}	mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));	mysqli_resource->ptr = mysqli_resource->info = (void *)w;	mysqli_resource->status = MYSQLI_STATUS_INITIALIZED;	MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry);}/* }}} */#ifdef HAVE_MYSQLI_SET_CHARSET/* {{{ proto bool mysqli_set_charset(object link, string csname) U   sets client character set */PHP_FUNCTION(mysqli_set_charset){	MY_MYSQL			*mysql;	zval				*mysql_link;	char				*csname;	int					csname_len;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os&", &mysql_link, mysqli_link_class_entry, 									 &csname, &csname_len, UG(utf8_conv)) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);	/* check unicode modus */	/* todo: we need also to support UCS2. This will not work when using SET NAMES */	if (UG(unicode) && (csname_len != 4  || strncasecmp(csname, "utf8", 4))) {		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Character set %s is not supported when running PHP with unicode.semantics=On.", csname);		RETURN_FALSE;	}	if (mysql_set_character_set(mysql->mysql, csname)) {		RETURN_FALSE;	}	RETURN_TRUE;}/* }}} */#endif#ifdef HAVE_MYSQLI_GET_CHARSET /* {{{ proto object mysqli_get_charset(object link) U   returns a character set object */PHP_FUNCTION(mysqli_get_charset){	MY_MYSQL				*mysql;	zval					*mysql_link;	char 					*name = NULL, *collation = NULL, *dir = NULL;	uint					minlength, maxlength, number, state;#if !defined(HAVE_MYSQLND)	MY_CHARSET_INFO			cs;#else	const MYSQLND_CHARSET	*cs;#endif	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);	object_init(return_value);#if !defined(HAVE_MYSQLND)	mysql_get_character_set_info(mysql->mysql, &cs);	name = (char *)cs.csname;	collation = (char *)cs.name;	dir = (char *)cs.dir;	minlength = cs.mbminlen;	maxlength = cs.mbmaxlen;	number = cs.number;	state = cs.state;#else	cs = mysql->mysql->charset;	name = cs->name;		collation = cs->collation;		minlength = cs->char_minlen;	maxlength = cs->char_maxlen;	number = cs->nr;	state = 1;	/* all charsets are compiled in */#endif	if (UG(unicode)) {		UChar *ustr = NULL;		int ulen;		zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, (name) ? name : "", 								(name) ? strlen(name) : 0 TSRMLS_CC);		add_property_unicodel(return_value, "charset", ustr, ulen, 1);		efree(ustr);		zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, (collation) ? collation : "", 								(collation) ? strlen(collation) : 0 TSRMLS_CC);		add_property_unicodel(return_value, "collation", ustr, ulen, 1);		efree(ustr);		zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, (dir) ? dir : "", 								(dir) ? strlen(dir) : 0 TSRMLS_CC);		add_property_unicodel(return_value, "dir", ustr, ulen, 1);		efree(ustr);	} else {		add_property_string(return_value, "charset", (name) ? (char *)name : "", 1);		add_property_string(return_value, "collation",(collation) ? (char *)collation : "", 1);		add_property_string(return_value, "dir", (dir) ? (char *)dir : "", 1);	}	add_property_long(return_value, "min_length", minlength);	add_property_long(return_value, "max_length", maxlength);	add_property_long(return_value, "number", number);	add_property_long(return_value, "state", state);}/* }}} */#endif/* * Local variables: * tab-width: 4 * c-basic-offset: 4 * End: * vim600: noet sw=4 ts=4 fdm=marker * vim<600: noet sw=4 ts=4 */

⌨️ 快捷键说明

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