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

📄 php_msql.c

📁 php-4.4.7学习linux时下载的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
	int id;	int msql;		switch(ZEND_NUM_ARGS()) {		case 1:			if (getParameters(ht, 1, &db)==FAILURE) {				RETURN_FALSE;			}			id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			break;		case 2:			if (getParameters(ht, 2, &db, &msql_link)==FAILURE) {				RETURN_FALSE;			}			id = -1;			break;		default:			WRONG_PARAM_COUNT;			break;	}		ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink);	convert_to_string(db);		if (msqlSelectDB(msql,Z_STRVAL_P(db))==-1) {		RETURN_FALSE;	} else {		RETURN_TRUE;	}}/* }}} *//* {{{ proto int msql_create_db(string database_name [, int link_identifier])   Create an mSQL database */PHP_FUNCTION(msql_create_db){	pval *db,*msql_link;	int id;	int msql;		switch(ZEND_NUM_ARGS()) {		case 1:			if (getParameters(ht, 1, &db)==FAILURE) {				WRONG_PARAM_COUNT;			}			id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			break;		case 2:			if (getParameters(ht, 2, &db, &msql_link)==FAILURE) {				WRONG_PARAM_COUNT;			}			id = -1;			break;		default:			WRONG_PARAM_COUNT;			break;	}		ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink);		convert_to_string(db);	if (msqlCreateDB(msql,Z_STRVAL_P(db))<0) {		RETURN_FALSE;	} else {		RETURN_TRUE;	}}/* }}} *//* {{{ proto int msql_drop_db(string database_name [, int link_identifier])   Drop (delete) an mSQL database */PHP_FUNCTION(msql_drop_db){	pval *db,*msql_link;	int id;	int msql;		switch(ZEND_NUM_ARGS()) {		case 1:			if (getParameters(ht, 1, &db)==FAILURE) {				WRONG_PARAM_COUNT;			}			id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			break;		case 2:			if (getParameters(ht, 2, &db, &msql_link)==FAILURE) {				WRONG_PARAM_COUNT;			}			id = -1;			break;		default:			WRONG_PARAM_COUNT;			break;	}		ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink);		convert_to_string(db);	if (msqlDropDB(msql,Z_STRVAL_P(db))<0) {		RETURN_FALSE;	} else {		RETURN_TRUE;	}}/* }}} *//* {{{ proto int msql_query(string query [, int link_identifier])   Send an SQL query to mSQL */PHP_FUNCTION(msql_query){	pval *query,*msql_link;	int id;	int msql;	int af_rows;		switch(ZEND_NUM_ARGS()) {		case 1:			if (getParameters(ht, 1, &query)==FAILURE) {				WRONG_PARAM_COUNT;			}			id = msql_globals.default_link;			break;		case 2:			if (getParameters(ht, 2, &query, &msql_link)==FAILURE) {				WRONG_PARAM_COUNT;			}			id = -1;			break;		default:			WRONG_PARAM_COUNT;			break;	}		ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink);		convert_to_string(query);	if ((af_rows = msqlQuery(msql,Z_STRVAL_P(query)))==-1) {		RETURN_FALSE;	}	ZEND_REGISTER_RESOURCE(return_value, php_msql_query_wrapper(msqlStoreResult(), af_rows), msql_globals.le_query);}/* }}} *//* {{{ proto int msql_db_query(string database_name, string query [, int link_identifier])   Send an SQL query to mSQL */PHP_FUNCTION(msql_db_query){	pval *db,*query,*msql_link;	int id;	int msql;	int af_rows;		switch(ZEND_NUM_ARGS()) {		case 2:			if (getParameters(ht, 2, &db, &query)==FAILURE) {				RETURN_FALSE;			}			id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			break;		case 3:			if (getParameters(ht, 3, &db, &query, &msql_link)==FAILURE) {				RETURN_FALSE;			}			id = -1;			break;		default:			WRONG_PARAM_COUNT;			break;	}		ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink);		convert_to_string(db);	if (msqlSelectDB(msql,Z_STRVAL_P(db))==-1) {		RETURN_FALSE;	}		convert_to_string(query);	if ((af_rows = msqlQuery(msql,Z_STRVAL_P(query)))==-1) {		RETURN_FALSE;	}	ZEND_REGISTER_RESOURCE(return_value, php_msql_query_wrapper(msqlStoreResult(), af_rows), msql_globals.le_query);}/* }}} *//* {{{ proto int msql_list_dbs([int link_identifier])   List databases available on an mSQL server */PHP_FUNCTION(msql_list_dbs){	pval *msql_link;	int id;	int msql;	m_result *msql_result;		switch(ZEND_NUM_ARGS()) {		case 0:			id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			break;		case 1:			if (getParameters(ht, 1, &msql_link)==FAILURE) {				RETURN_FALSE;			}			id = -1;			break;		default:			WRONG_PARAM_COUNT;			break;	}		ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink);	if ((msql_result=msqlListDBs(msql))==NULL) {		php_error(E_WARNING, "%s(): Unable to save mSQL query result", get_active_function_name(TSRMLS_C));		RETURN_FALSE;	}	ZEND_REGISTER_RESOURCE(return_value, php_msql_query_wrapper(msql_result, 0), msql_globals.le_query);}/* }}} *//* {{{ proto int msql_list_tables(string database_name [, int link_identifier])   List tables in an mSQL database */PHP_FUNCTION(msql_list_tables){	pval *db,*msql_link;	int id;	int msql;	m_result *msql_result;		switch(ZEND_NUM_ARGS()) {		case 1:			if (getParameters(ht, 1, &db)==FAILURE) {				RETURN_FALSE;			}			id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			break;		case 2:			if (getParameters(ht, 2, &db, &msql_link)==FAILURE) {				RETURN_FALSE;			}			id = -1;			break;		default:			WRONG_PARAM_COUNT;			break;	}		ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink);		convert_to_string(db);	if (msqlSelectDB(msql,Z_STRVAL_P(db))==-1) {		RETURN_FALSE;	}	if ((msql_result=msqlListTables(msql))==NULL) {		php_error(E_WARNING, "%s(): Unable to save mSQL query result", get_active_function_name(TSRMLS_C));		RETURN_FALSE;	}	ZEND_REGISTER_RESOURCE(return_value, php_msql_query_wrapper(msql_result, 0), msql_globals.le_query);}/* }}} *//* {{{ proto int msql_list_fields(string database_name, string table_name [, int link_identifier])   List mSQL result fields */PHP_FUNCTION(msql_list_fields){	pval *db,*table,*msql_link;	int id;	int msql;	m_result *msql_result;		switch(ZEND_NUM_ARGS()) {		case 2:			if (getParameters(ht, 2, &db, &table)==FAILURE) {				RETURN_FALSE;			}			id = php_msql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			break;		case 3:			if (getParameters(ht, 3, &db, &table, &msql_link)==FAILURE) {				RETURN_FALSE;			}			id = -1;			break;		default:			WRONG_PARAM_COUNT;			break;	}		ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link, msql_globals.le_plink);		convert_to_string(db);	if (msqlSelectDB(msql,Z_STRVAL_P(db))==-1) {		RETURN_FALSE;	}	convert_to_string(table);	if ((msql_result=msqlListFields(msql,Z_STRVAL_P(table)))==NULL) {		php_error(E_WARNING, "%s(): Unable to save mSQL query result", get_active_function_name(TSRMLS_C));		RETURN_FALSE;	}	ZEND_REGISTER_RESOURCE(return_value, php_msql_query_wrapper(msql_result, 0), msql_globals.le_query);}/* }}} *//* {{{ proto string msql_error([int link_identifier])   Returns the text of the error message from previous mSQL operation */PHP_FUNCTION(msql_error){	if (ZEND_NUM_ARGS()) {		WRONG_PARAM_COUNT;	}	RETURN_STRING(msqlErrMsg,1);}/* }}} *//* {{{ proto int msql_result(int query, int row [, mixed field])   Get result data */PHP_FUNCTION(msql_result){	pval *result, *row, *field=NULL;	m_result *msql_result;	m_query *msql_query;	m_row sql_row;	int field_offset=0;		switch (ZEND_NUM_ARGS()) {		case 2:			if (getParameters(ht, 2, &result, &row)==FAILURE) {				RETURN_FALSE;			}			break;		case 3:			if (getParameters(ht, 3, &result, &row, &field)==FAILURE) {				RETURN_FALSE;			}			break;		default:			WRONG_PARAM_COUNT;			break;	}		MSQL_GET_QUERY(result);		convert_to_long(row);	if (Z_LVAL_P(row)<0 || Z_LVAL_P(row)>=msqlNumRows(msql_result)) {		php_error(E_WARNING, "%s(): Unable to jump to row %d on mSQL query index %d", get_active_function_name(TSRMLS_C),Z_LVAL_P(row),Z_LVAL_P(result));		RETURN_FALSE;	}	msqlDataSeek(msql_result,Z_LVAL_P(row));	if ((sql_row=msqlFetchRow(msql_result))==NULL) { /* shouldn't happen? */		RETURN_FALSE;	}	if (field) {		switch(Z_TYPE_P(field)) {			case IS_STRING: {					int i=0;					m_field *tmp_field;					char *table_name,*field_name,*tmp;										if ((tmp=strchr(Z_STRVAL_P(field),'.'))) {						*tmp = 0;						table_name = estrdup(Z_STRVAL_P(field));						field_name = estrdup(tmp+1);					} else {						table_name = NULL;						field_name = estrndup(Z_STRVAL_P(field),Z_STRLEN_P(field));					}					msqlFieldSeek(msql_result,0);					while ((tmp_field=msqlFetchField(msql_result))) {						if ((!table_name || !strcasecmp(tmp_field->table,table_name)) && !strcasecmp(tmp_field->name,field_name)) {							field_offset = i;							break;						}						i++;					}					if (!tmp_field) { /* no match found */						php_error(E_WARNING, "%s(): %s%s%s not found in mSQL query index %d", get_active_function_name(TSRMLS_C),									(table_name?table_name:""), (table_name?".":""), field_name, Z_LVAL_P(result));						efree(field_name);						if (table_name) {							efree(table_name);						}						RETURN_FALSE;					}					efree(field_name);					if (table_name) {						efree(table_name);					}				}				break;			default:				convert_to_long(field);				field_offset = Z_LVAL_P(field);				if (field_offset<0 || field_offset>=msqlNumFields(msql_result)) {					php_error(E_WARNING, "%s(): Bad column offset specified", get_active_function_name(TSRMLS_C));					RETURN_FALSE;				}				break;		}	}		if (sql_row[field_offset]) {		if (PG(magic_quotes_runtime)) {			Z_STRVAL_P(return_value) = php_addslashes(sql_row[field_offset],0,&Z_STRLEN_P(return_value),0 TSRMLS_CC);		} else {				Z_STRLEN_P(return_value) = (sql_row[field_offset]?strlen(sql_row[field_offset]):0);			Z_STRVAL_P(return_value) = (char *) safe_estrndup(sql_row[field_offset],Z_STRLEN_P(return_value));		}		Z_TYPE_P(return_value) = IS_STRING;	} else {		ZVAL_FALSE(return_value);	}}/* }}} *//* {{{ proto int msql_num_rows(int query)   Get number of rows in a result */PHP_FUNCTION(msql_num_rows){	pval *result;	m_result *msql_result;	m_query *msql_query;		if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &result)==FAILURE) {		WRONG_PARAM_COUNT;	}		MSQL_GET_QUERY(result);	RETVAL_LONG(msql_result ? msqlNumRows(msql_result) : 0);}/* }}} *//* {{{ proto int msql_num_fields(int query)   Get number of fields in a result */PHP_FUNCTION(msql_num_fields){	pval *result;	m_result *msql_result;	m_query *msql_query;		if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &result)==FAILURE) {		WRONG_PARAM_COUNT;

⌨️ 快捷键说明

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