2012-02-20 25 views
0

PHPを使用してローカルのmysqlサーバに接続しようとしています。私のコードは次のようになります。PHPがインストールされていても、定義されていない関数mysql_connect()エラーを呼び出す

$con = mysql_connect("localhost", "user", "password"); 
mysql_select_db("database", $con) or die('ERROR 4'); 

大丈夫です。

このPHPスクリプトをmysqlデータベースのマシンで実行すると、すべて正常に動作します。 しかし、このスクリプトをリモートから(サーバ上でローカルのmysqlデータベースを使用して)アクセスすると、データベースに接続できません。

PHPコードがローカル参照を介してmysqlデータベースに接続するようにする方法はありますか? または、IPアドレスを使ってmysqlデータベースに接続する必要がありますか?

編集:私は、エラーをチェックする場合がそれをログ未定義の呼び出し」状態: は、明確にするために、私はどこか別の場所からサーバー上のスクリプトにアクセスすると、それは動作しません編集2は

function mysql_connect() "

+0

を参照してください。 –

+0

どのようにサーバー上の_that_でスクリプトにアクセスしても、同じ結果が得られます。あなたは、サーバー自体からスクリプトにアクセスすると動作すると言いますが、他の場所からサーバーからスクリプトにアクセスすると、それはありませんか? – kba

+0

var_dump(mysql_error())を実行して、取得したエラーを確認してからここに投稿してください。 – Jeune

答えて

1

ローカルでテストするときは、コマンドライン(CLI)で実行します。リモートでテストするときは、ブラウザ(CGI)を使用してテストしています。これらの2つのモードには異なる設定ファイルがあります。 CGI構成ファイルを編集して、MySQL拡張機能を組み込む必要があります。

クイック発言:あなたはmysql_connectmysql_queryを通して、あなたのMySQLデータベースと通信するべきではありません。あなたはthe PDO layerと準備されたステートメントを使用するべきです。これは、SQLインジェクションに対してあなたをより良くするために役立ちます。

0

MySql APIは、ほとんどの状況でPHPに付属するアドオンです。インストールされていない場所(PHPが二次的な目的でインストールされているSolarisサーバー)でしか経験できませんでした。 PHPのウェブサイトでは、インストールについての情報のために最高の場所です:

あなたがするphpinfoで、セットアップの引数に目を通す場合

http://www.php.net/manual/en/mysql.installation.php

()と、問題がどこにあるか見ることがあります上記のリンクにそれを比較する - 私のためにConfigureコマンドには、意図的に意図的にmysql_ *機能を残していた--without-mysqlが含まれていました。別のconfigsで立ち往生したくない場合は、DLを経由して、実行時にmysql.so拡張をロードしようとすることができます

関連する問題