PHP4.4.9 make時にmysql_create_db mysql_drop_dbエラー

  • 2008.12.31
  • PHP

MySQL 4.0 を指定してPHP 4.4.9をmakeしたときにエラーが発生した。

/usr/local/src/php-4.4.9/ext/mysql/php_mysql.c:1164: undefined reference to `mysql_create_db’
/usr/local/src/php-4.4.9/ext/mysql/php_mysql.c:1206: undefined reference to `mysql_drop_db’

 

■環境

PHP 4.4.9

MySQL 4.0.20

 

■configureの設定

$ ./configure --with-mysql=/usr/local/mysql4 --with-mysql-sock=/tmp/mysql4.sock 

複数のMySQLを利用しているので、ディレクトリとソケットを指定した。

 

■make時のエラー

$ make
(省略)
/usr/local/src/php-4.4.9/ext/mysql/php_mysql.c:1164: undefined reference to `mysql_create_db'
/usr/local/src/php-4.4.9/ext/mysql/php_mysql.c:1206: undefined reference to `mysql_drop_db' 

 

■php_mysql.cを修正する

エラーが発生しているphp_mysql.cファイルを修正する。

1164行目のちょっと後ろの、PHP_FUNCTION(mysql_drop_db){} をコメントアウトして無効にする。

/* PHP_FUNCTION(mysql_drop_db)
{
    zval **db, **mysql_link;
    int id;
    php_mysql_conn *mysql;
    
    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);
            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;
    }

    php_error_docref(NULL TSRMLS_CC, E_NOTICE, "This function is deprecated, 
please use mysql_query() to issue a SQL DROP DATABASE statement instead.");

    
    ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, 
"MySQL-Link", le_link, le_plink);
    
    convert_to_string_ex(db);

    if (mysql_drop_db(&mysql->conn, Z_STRVAL_PP(db))==0) {
        RETURN_TRUE;
    } else {
        RETURN_FALSE;
    }
} */ 

 

■再度makeを実行してインストールする

$ make
# make install

 

 

参考ページ

先人の知恵に感謝の気持ちを込めて…。

http://www.databasebank.com/programmers/frm_detail.php?v_id=1393

http://takesita.seesaa.net/article/28878527.html

http://www.furuken.net/blog/item/125