[PHP_DEV] PHP + mysql4 compilation
| From: | Vadka | Date: | Mon, 29 Oct 2001 18:01:52 +0000 |
| Subject: | [PHP_DEV] PHP + mysql4 compilation | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-69286@lists.php.net to get a copy of this message | ||
Note, please, that C API in mysql has changed. So, create_db and drop_db
are gone. See a kind of workaround below.
Thanx!
For create_db function in ext/mysql/php_mysql.c:
--------------------------------
int id;
#if MYSQL_VERSION_ID > 39999
char buff[80];
#endif
php_mysql_conn *mysql;
MySLS_FETCH();
switch(ZEND_NUM_ARGS()) {
case 1:
if (zend_get_parameters_ex(1, &db)==FAILURE) {
RETURN_FALSE;
}
id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU MySLS_CC);
CHECK_LINK(id);
break;
case 2:
if (zend_get_parameters_ex(2, &db, &mysql_link)==FAILURE) {
RETURN_FALSE;
}
id = -1;
break;
default:
WRONG_PARAM_COUNT;
break;
}
ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", le_link,
le_plink);
convert_to_string_ex(db);
#if MYSQL_VERSION_ID < 40000
if (mysql_create_db(&mysql->conn, (*db)->value.str.val)==0) {
RETURN_TRUE;
} else {
RETURN_FALSE;
}
#else
if((*db)->value.str.len > 64) {
RETURN_FALSE;
}
sprintf(buff,"CREATE DATABASE %s",(*db)->value.str.val);
if (mysql_query(&mysql->conn, buff)!=0) {
RETURN_FALSE;
} else {
RETURN_TRUE;
}
#endif
-------------------
And the same with drop DB:
#if MYSQL_VERSION_ID < 40000
convert_to_string_ex(db);
if (mysql_drop_db(&mysql->conn, (*db)->value.str.val)==0) {
RETURN_TRUE;
} else {
RETURN_FALSE;
}
#else
if((*db)->value.str.len > 64) {
RETURN_FALSE;
}
sprintf(buff,"DROP DATABASE %s",(*db)->value.str.val);
if (mysql_query(&mysql->conn, buff)!=0) {
RETURN_FALSE;
} else {
RETURN_TRUE;
}
#endif