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

📄 mysqli_api.c

📁 linux下安装不上mysql5与php5的可用此关联
💻 C
📖 第 1 页 / 共 5 页
字号:
}/* }}} *//* {{{ proto bool mysqli_stmt_close(object stmt)    Close statement */PHP_FUNCTION(mysqli_stmt_close){	MY_STMT 	*stmt;	zval    	*mysql_stmt;	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);	mysqli_stmt_close(stmt->stmt, FALSE);	stmt->stmt = NULL;	php_clear_stmt_bind(stmt TSRMLS_CC); 	MYSQLI_CLEAR_RESOURCE(&mysql_stmt);	RETURN_TRUE;}/* }}} *//* {{{ proto void mysqli_stmt_data_seek(object stmt, int offset)   Move internal result pointer */PHP_FUNCTION(mysqli_stmt_data_seek){	MY_STMT 	*stmt;	zval  		*mysql_stmt;	long  		offset;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_stmt, mysqli_stmt_class_entry, &offset) == FAILURE) {		return;	}	if (offset < 0) {		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Offset must be positive");		RETURN_FALSE;	}	MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);	mysql_stmt_data_seek(stmt->stmt, offset);}/* }}} *//* {{{ proto int mysqli_stmt_field_count(object stmt) {   Return the number of result columns for the given statement */PHP_FUNCTION(mysqli_stmt_field_count){	MY_STMT 	*stmt;	zval		*mysql_stmt;		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);			RETURN_LONG(mysql_stmt_field_count(stmt->stmt));}/* }}} *//* {{{ proto void mysqli_stmt_free_result(object stmt)   Free stored result memory for the given statement handle */PHP_FUNCTION(mysqli_stmt_free_result) {	MY_STMT 		*stmt;	zval    		*mysql_stmt;	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);	mysql_stmt_free_result(stmt->stmt);}/* }}} *//* {{{ proto mixed mysqli_stmt_insert_id(object stmt)   Get the ID generated from the previous INSERT operation */PHP_FUNCTION(mysqli_stmt_insert_id){	MY_STMT		 	*stmt;	my_ulonglong 	rc;	zval  			*mysql_stmt;	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);	rc = mysql_stmt_insert_id(stmt->stmt);	MYSQLI_RETURN_LONG_LONG(rc)}/* }}} *//* {{{ proto int mysqli_stmt_param_count(object stmt) {   Return the number of parameter for the given statement */PHP_FUNCTION(mysqli_stmt_param_count){	MY_STMT 	*stmt;	zval		*mysql_stmt;		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);			RETURN_LONG(mysql_stmt_param_count(stmt->stmt));}/* }}} *//* {{{ proto bool mysqli_stmt_reset(object stmt)   reset a prepared statement */PHP_FUNCTION(mysqli_stmt_reset) {	MY_STMT 		*stmt;	zval    		*mysql_stmt;	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 (mysql_stmt_reset(stmt->stmt)) {		RETURN_FALSE;	}	RETURN_TRUE;}/* }}} *//* {{{ proto mixed mysqli_stmt_num_rows(object stmt)   Return the number of rows in statements result set */PHP_FUNCTION(mysqli_stmt_num_rows){	MY_STMT 		*stmt;	zval    		*mysql_stmt;	my_ulonglong	rc;	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);	rc = mysql_stmt_num_rows(stmt->stmt);	MYSQLI_RETURN_LONG_LONG(rc)}/* }}} *//* {{{ proto string mysqli_select_db(object link, string dbname)   Select a MySQL database */PHP_FUNCTION(mysqli_select_db) {	MY_MYSQL	*mysql;	zval  		*mysql_link;	char  		*dbname;	int   		dbname_len;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &dbname, &dbname_len) == FAILURE) {		return;	} 	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);		if (!mysql_select_db(mysql->mysql, dbname)) {		RETURN_TRUE;	}		MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);	RETURN_FALSE;}/* }}} *//* {{{ proto string mysqli_sqlstate(object link)   Returns the SQLSTATE error from previous MySQL operation */PHP_FUNCTION(mysqli_sqlstate) {	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_STRING((char *)mysql_sqlstate(mysql->mysql),1);}/* }}} */#ifndef HAVE_MYSQLND/* {{{ proto bool mysqli_ssl_set(object link ,string key ,string cert ,string ca ,string capath ,string cipher])*/PHP_FUNCTION(mysqli_ssl_set){	MY_MYSQL	*mysql;	zval  		*mysql_link;	char  		*ssl_parm[5];	int			ssl_parm_len[5], i;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Osssss", &mysql_link, mysqli_link_class_entry, &ssl_parm[0], &ssl_parm_len[0], &ssl_parm[1], &ssl_parm_len[1], &ssl_parm[2], &ssl_parm_len[2], &ssl_parm[3], &ssl_parm_len[3], &ssl_parm[4], &ssl_parm_len[4])   == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_INITIALIZED);	for (i=0; i < 5; i++) {		if (!ssl_parm_len[i]) {			ssl_parm[i] = NULL;		}	}	mysql_ssl_set(mysql->mysql, ssl_parm[0], ssl_parm[1], ssl_parm[2], ssl_parm[3], ssl_parm[4]);	RETURN_TRUE;}/* }}} */#endif  /* {{{ proto mixed mysqli_stat(object link)    Get current system status */PHP_FUNCTION(mysqli_stat){	MY_MYSQL 	*mysql;	zval  		*mysql_link;	char		*stat;#if defined(HAVE_MYSQLND)	uint		stat_len;#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);#if !defined(HAVE_MYSQLND)	if ((stat = (char *)mysql_stat(mysql->mysql)))	{		RETURN_STRING(stat, 1);#else	if (mysqlnd_stat(mysql->mysql, &stat, &stat_len) == PASS)	{		RETURN_STRINGL(stat, stat_len, 0);#endif	} else {		RETURN_FALSE;	}}/* }}} */ /* {{{ proto int mysqli_stmt_attr_set(object stmt, long attr, long mode)*/PHP_FUNCTION(mysqli_stmt_attr_set){	MY_STMT	*stmt;	zval 	*mysql_stmt;	long    mode_in;	ulong   mode;	ulong	attr;	int		rc;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Oll", &mysql_stmt, mysqli_stmt_class_entry, &attr, &mode_in) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);	if (mode_in < 0) {		php_error_docref(NULL TSRMLS_CC, E_WARNING, "mode should be non-negative, %ld passed", mode_in);		RETURN_FALSE;	}	mode = mode_in;	if ((rc = mysql_stmt_attr_set(stmt->stmt, attr, (void *)&mode))) {		RETURN_FALSE;	}	RETURN_TRUE;}/* }}} *//* {{{ proto int mysqli_stmt_attr_get(object stmt, long attr)*/PHP_FUNCTION(mysqli_stmt_attr_get){	MY_STMT	*stmt;	zval 	*mysql_stmt;#if MYSQL_VERSION_ID > 50099	my_bool value;#else	ulong	value = 0;#endif	ulong	attr;	int		rc;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_stmt, mysqli_stmt_class_entry, &attr) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);	if ((rc = mysql_stmt_attr_get(stmt->stmt, attr, &value))) {		RETURN_FALSE;	}	RETURN_LONG((long)value);}/* }}} *//* {{{ proto int mysqli_stmt_errno(object stmt)*/PHP_FUNCTION(mysqli_stmt_errno){	MY_STMT	*stmt;	zval 	*mysql_stmt;	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_INITIALIZED);	RETURN_LONG(mysql_stmt_errno(stmt->stmt));}/* }}} *//* {{{ proto string mysqli_stmt_error(object stmt)*/PHP_FUNCTION(mysqli_stmt_error) {	MY_STMT	*stmt;	zval 	*mysql_stmt;	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_INITIALIZED);		RETURN_STRING((char *)mysql_stmt_error(stmt->stmt),1);}/* }}} *//* {{{ proto mixed mysqli_stmt_init(object link)   Initialize statement object*/PHP_FUNCTION(mysqli_stmt_init){	MY_MYSQL		*mysql;	MY_STMT 		*stmt;	zval			*mysql_link;	MYSQLI_RESOURCE *mysqli_resource; 	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);	stmt = (MY_STMT *)ecalloc(1,sizeof(MY_STMT));	if (!(stmt->stmt = mysql_stmt_init(mysql->mysql))) {		efree(stmt);		RETURN_FALSE;	}	mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));	mysqli_resource->status = MYSQLI_STATUS_INITIALIZED;	mysqli_resource->ptr = (void *)stmt;	MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_stmt_class_entry);}/* }}} *//* {{{ proto bool mysqli_stmt_prepare(object stmt, string query)   prepare server side statement with query*/PHP_FUNCTION(mysqli_stmt_prepare){	MY_STMT	*stmt;	zval 	*mysql_stmt;	char	*query;	int		query_len;	if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_stmt, mysqli_stmt_class_entry, &query, &query_len) == FAILURE) {		return;	}	MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_INITIALIZED);	if (mysql_stmt_prepare(stmt->stmt, query, query_len)) {		MYSQLI_REPORT_STMT_ERROR(stmt->stmt);		RETURN_FALSE;	}	/* change status */	MYSQLI_SET_STATUS(&mysql_stmt, MYSQLI_STATUS_VALID);	RETURN_TRUE;}/* }}} *//* {{{ proto mixed mysqli_stmt_result_metadata(object stmt)   return result set from statement */PHP_FUNCTION(mysqli_stmt_result_metadata){	MY_STMT		*stmt;	MYSQL_RES		*result;	zval 			*mysql_stmt;	MYSQLI_RESOURCE	*mysqli_resource;	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 (!(result = mysql_stmt_result_metadata(stmt->stmt))){		MYSQLI_REPORT_STMT_ERROR(stmt->stmt);		RETURN_FALSE;	}	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 bool mysqli_stmt_store_result(stmt)*/PHP_FUNCTION(mysqli_stmt_store_result){	MY_STMT *stmt;	zval 	*mysql_stmt;#ifndef HAVE_MYSQLND	int		i=0;#endif	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);	#ifndef HAVE_MYSQLND	/*	  If the user wants to store the data and we have BLOBs/TEXTs we try to allocate	  not the maximal length of the type (which is 16MB even for LONGBLOB) but	  the maximal length of the field in the result set. If he/she has quite big	  BLOB/TEXT columns after calling store_result() the memory usage of PHP will	  double - but this is a known problem of the simple MySQL API ;)	*/	for (i = mysql_stmt_field_count(stmt->stmt) - 1; i >=0; --i) {		if (stmt->s

⌨️ 快捷键说明

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