2011-01-31 15 views
0

私はDrupalのWebサイトにgodaddyのWindows IISはありませんでした。Drupal、php.ini、未定義関数を呼び出すmysqli_real_escape_stringエラー

私は、php memory_limitを、ルートディレクトリレベルのphp.iniファイル(32Mから64M)を使用して変更しました。私は(サブフォルダ内)のDrupalを実行すると

は、しかし、私は次のエラーを取得する:私は、php.iniファイルを削除した場合

Fatal error: Call to undefined function mysqli_real_escape_string() in D:\Hosting\3790877\html\fuzion\includes\database.mysqli.inc on line 330 

、Drupalは正常に動作します。

問題点を教えてください。 おかげ

あなたはmysqli拡張モジュールは、mysqli拡張モジュールを取得するためにPHP5を必要としないすべてのあなたのphp.ini.You内で有効になっていると、その拡張子がenabled.Theエラーでなければならない場合
+0

チェックあなたはmysqli拡張モジュールは、取得するためにPHP5を必要としないすべてのあなたのphp.ini.You内で有効にした場合mysqli拡張機能とその拡張機能を有効にする必要があります。エラーは、mysqli拡張機能がPHPで有効になっていないことを意味します。 – ayush

+0

@ayush cool thanks。私はphp5.2をインストールしました。ディレクトリレベルのphp.iniには設定行全体が含まれていますか?私は、私が置きたい行を追加するだけでよいと思った。 – aneuryzm

+0

たとえば、私のホスティングファイルシステムのルートディレクトリにある私のphp5.iniファイルは、1行だけです:memory_limit = 64M;残りの部分はphp.iniのメインの設定に継承されていませんか? – aneuryzm

答えて

0

チェックがmysqli拡張モジュールは、PHPで有効にされていないことを意味しますここで

あなたはFOR-

extension=php_mysqli.dll 

[MySQLi] 

; Maximum number of links. -1 means no limit. 
mysqli.max_links = -1 

; Default port number for mysqli_connect(). If unset, mysqli_connect() will use 
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the 
; compile-time value defined MYSQL_PORT (in that order). Win32 will only look 
; at MYSQL_PORT. 
mysqli.default_port = 3306 

; Default socket name for local MySQL connects. If empty, uses the built-in 
; MySQL defaults. 
mysqli.default_socket = 

; Default host for mysql_connect() (doesn't apply in safe mode). 
mysqli.default_host = 

; Default user for mysql_connect() (doesn't apply in safe mode). 
mysqli.default_user = 

; Default password for mysqli_connect() (doesn't apply in safe mode). 
; Note that this is generally a *bad* idea to store passwords in this file. 
; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") 
; and reveal this password! And of course, any users with read access to this 
; file will be able to reveal the password as well. 
mysqli.default_pw = 

; Allow or prevent reconnect 
mysqli.reconnect = Off 

[mSQL] 
; Allow or prevent persistent links. 
msql.allow_persistent = On 

; Maximum number of persistent links. -1 means no limit. 
msql.max_persistent = -1 

; Maximum number of links (persistent+non persistent). -1 means no limit. 
msql.max_links = -1 

編集して、ACCをチェックする必要がありphp.iniのラインがあります。あなたの要求に合ってください。他のサブディレクトリ内のメインのphp.iniやphp.iniをについてのあなたの他の質問については

参照thisthis

+0

ありがとう、そうです。追加のphp.iniファイルを追加しないと、mysqlモジュールが有効になっています(phpinfo.php)。ですから、ここで書いた行をローカルのphp5.iniファイルに追加します。しかし、ディレクトリレベルのファイルは、明示的に要求されていなければ機能を削除してはならないので、私にとっては本当に奇妙に聞こえます。 – aneuryzm

+0

また、別の問題は、mysqli.default_socketがどのような値を持っているかわからないということです。私はこのような変数を2回(グローバルとローカルの設定)設定する必要があります。 – aneuryzm

+0

@Patrick:これらの行は両方ともphp.iniに存在する必要があります。それらは、デフォルトで(つまりそこに既に存在している)ローカルのphp.iniに存在する必要があります。 phpはおそらくグローバルなphp.iniファイルを、ディレクトリ単位でローカルのルールセット(.htaccessとよく似ています)で上書きします。したがって、両方のファイルに同じmysqli.defaultソケットがあります。私は正確ではない場合いくつかの助けを望んだ。 – ayush

関連する問題