1

MySQL Workbench でデータベースを作成しましたが、今度はそのデータベースにアクセスする必要があります。だから私はそれにアクセスするためのphpスクリプトを書いた:

<? 
    $db = mysql_connect("127.0.0.1:3306","root", "");

    if (!$db){
        echo "Could not connect to database";
        exit();
    }

    $db_name = "pfc_db";
    if (!mysql_select_db($db_name, $db)){
        die ("Could not select database");
    }

    $sql=mysql_query("select * from CAPAS");
    while($row=mysql_fetch_assoc($sql)){
        $output[]=$row;
        if (isset($output)){
            echo "yes";
            echo $output[0];
        }
        else{echo "no";}
    }
    mysql_close();

?>

私は MAMP と MySQL Community Server について疑問を持っており、正しい道を推し進める必要があります。Mac に MAMP をインストールし、ポートをデフォルトの mysql ポートの 3306 に切り替えました。PHP テスト スクリプトを、htdocs の下に作成したフォルダー「Api」に配置しました。試してみるために、ブラウザにhttp://127.0.0.1/api/test.phpと入力すると、「データベースに接続できませんでした」という結果が表示されます。私はそれを正しくやっていますか?

Community Server はどうですか? MAMPよりも優れていますか?MAMP が機能するために実行する必要がありますか? Community Server だけを使用できますか? その場合、PHP スクリプトはどこに配置すればよいですか? どのフォルダ?Community Server で同じテストを実行しようとすると、エラー メッセージが表示される代わりに、ブラウザーが php スクリプトをダウンロード フォルダーにダウンロードし始めるためです。なぜそれが起こるのですか?

ご覧のとおり、これらのサーバーに関することで頭が混乱していて、それを理解するために助けが必要です。

4

5 に答える 5

5

MySQL Community Server をインストールする必要はありません。MAMP にはすでに MySQL が付属しています。

関数を使用して、コード内でより具体的なエラーを出力する必要がありますmysql_error()

if (!$db){
    echo "Could not connect to database" . mysql_error();
    exit();
}

$db_name = "pfc_db";
if (!mysql_select_db($db_name, $db)){
    die ("Could not select database" . mysql_error());
}

mysql_error は、MySQL からエラー メッセージを返します。

于 2011-06-05T15:06:10.933 に答える
0

user775263に提供していた質問に続いて、次のユーザーの表を取得します。

+

--------------------+------+----------+
| Host               | User | Password |
+--------------------+------+----------+
| localhost          | root |          |
| SquirrellJoe.local | root |          |
| 127.0.0.1          | root |          |
| ::1                | root |          |
| localhost          |      |          |
| SquirrellJoe.local |      |          |
+--------------------+------+----------+

ご覧のとおり、どのユーザーにもパスワードが設定されています。しかし、その後、bin/phpmyadminの下にconfig.inc.phpスクリプトがあることがわかりました。ここには次の文があります。

$cfg['Servers'][$i]['auth_type']     = 'config';    // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user']          = 'root';      // MySQL user
$cfg['Servers'][$i]['password']      = 'root';          // MySQL password (only needed

もう一度接続を試みたところ、接続$db = mysql_connect("127.0.0.1:3306","root", "root");は成功しました。mysqlコマンドラインのusersテーブルがこれを反映していないのはなぜですか?正常ですか?変更する必要がありますか?

そして、私は別の問題に遭遇します。MySQLWorkbenchで作成したデータベース「pfc_db」を選択できません。不明なデータベース'pfc_db'というエラーメッセージが表示されます。ただし、入力mysql> show databases;すると、上記のdbがテーブルに表示されます。

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| pfc_db             |
| test               |
+--------------------+

では、ここで何が問題になるのでしょうか。

于 2011-06-05T23:05:28.993 に答える
0

これは私のために働いた

sudo mkdir /var/mysql sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

于 2014-01-22T11:44:30.587 に答える
0

まあ、誰かが同じ問題に遭遇した場合に備えて、私は自分自身に答えるつもりです.

パスワードのエラーが発生したのは、同じコンピューターに mysql を 2 つインストールしていたため、一方のパスワードをチェックしていて、ブラウザーがもう一方のパスワードを確認していたためです。

したがって、パスワード アクセスに問題がある場合は、2 つの mysql がインストールされていないことを確認し、ファイル config.inc.php も確認してください。

また、ソケット接続によって TCP/IP を変更しました。これにより、localhost をサーバーとして使用している場合に速度が向上します。

于 2011-06-07T16:56:49.107 に答える