【问题标题】:PHP/MySQL – Error when connecting to serverPHP/MySQL – 连接服务器时出错
【发布时间】:2015-07-22 14:31:42
【问题描述】:

我使用的是 Mac OSX,并且安装了 MAMP,它正在运行我的本地主机服务器。但是,运行 PHP 代码时会出现一些问题,因为网站在连接到服务器时不断返回错误消息。我不知道这有什么问题;也许有人可以在这里帮助我。

PHP 代码:

<?php

$connection = mysql_connect("localhost", "user", "password") or die ("There was an error when connecting to the server");
mysql_select_db("topaz", $connection) or die ("There was an error when connecting to the database");

echo "

  <body style='font-family: Helvetica Neue, Helvetica, Arial, sans-serif;'>

    <div style='width: 80%; padding: 10px; border: 1px solid #000000; background-color: #ffffff;'>
      <h1>Login</h1>
    </div>

  </body>
";

?>

PHPMyAdmin 设置:

MAMP 端口设置:

错误:

【问题讨论】:

    标签: mysql mamp


    【解决方案1】:

    您需要通过控制面板中指定的端口建立连接 - 默认情况下,mysql_connect() 将尝试通过端口 3306 连接到您的 MySQL 主机。

    mysql_connect的第一个参数(host)中指定使用哪个端口:

    $connection = mysql_connect("localhost:8889", "user", "password") or die ("There was an error when connecting to the server");
    //                               Here ^^^^^
    

    强制说明:不要使用 mysql_* 函数,因为它们已被弃用。请改用 PDO 或 mysqli_*。

    【讨论】:

    • @Shrey 您是否尝试过通过默认 MySQL 端口 (3306) 建立连接?
    • 那我恐怕帮不上什么忙了,你有没有试过这里列出的解决方案:forum.mamp.info/viewtopic.php?t=115
    【解决方案2】:
    <?php
    /*
    link.php
    Created By Nicholas English
    */
    $link = null;
    $connection = null;
    $servername = "";
    $username = "";
    $dbname = "";
    $pass = "";
    $mysqli = null;
    $pdo = null;
    $obj = null;
    $pr = null;
    $type = 3;
    if ($type === 1) {
    $mysqli = true;
    $pdo = false;
    $obj = true;
    $pr = false;
    } else {
    if ($type === 2) {
    $mysqli = true;
    $pdo = false;
    $obj = false;
    $pr = true;
    } else {
    if ($type === 3) {
    $mysqli = false;
    $pdo = true;
    $obj = false;
    $pr = false;
    } else {
    $mysqli = null;
    $pdo = null;
    $obj = null;
    $pr = null;
    }
    }
    }
    if ($mysqli === true && $obj === true) {
    $link = new mysqli($servername, $username, $pass, $dbname);
    if ($link->connect_error) {
    die("Connection failed: " . $link->connect_error);
    }
    $connection = true;
    } else {
    if ($mysqli === true && $pr === true) {
    $link = mysqli_connect($servername, $username, $pass, $dbname);
    if (!$link) {
    die("Connection failed: " . mysqli_connect_error());
    }
    $connection = true;
    } else {
    if ($pdo === true && $mysqli === false) {
    try {
    $link = new PDO("mysql:host=$servername;dbname=$dbname", $username, $pass);
    $link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $connection = true;
    }
    catch(PDOException $e)
    {
    $connection = null;
    echo "Connection failed: " . $e->getMessage();
    }
    } else {
    $link = null;
    $connection = null;
    }
    }
    }
    if ($connection == null && $link == null) {
    $error = 1;
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2017-02-07
      • 2014-10-29
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 2016-12-29
      • 2013-06-27
      • 1970-01-01
      相关资源
      最近更新 更多