【问题标题】:Can't connect to a database using MAMP无法使用 MAMP 连接到数据库
【发布时间】:2016-09-23 00:19:41
【问题描述】:

我正在尝试使用 PHP 连接到名称为 auth 的数据库。我用 SequelPro 创建了数据库,我正在使用 MAMP 连接我的 PHP 代码是

$server = 'localhost';
$username = 'root';
$password = 'root';
$database = 'auth';

try {
    $conn = new PDO("mysql:host=$server;dbname=$database; $username, $password");
} catch(PDOException $e) {
    die("Connection failed ". $e->getMessage());

【问题讨论】:

  • 您在 try 块 .pl 中已将 new 写为 nee。查看。 $conn = new PDO("mysql:host= $server;dbname=$database;, $username, $password");
  • host= $server 里面不应该有任何空格,;, $username 里面有一个逗号。请花时间仔细阅读手册php.net/manual/en/pdo.connections.php
  • 我在移动设备上,所以这是我编辑的问题中的错字。
  • @chris85 成功了!!
  • @chris85 啊,放错地方了。好吧,我留给他们的手册链接语法正确,你也一样。

标签: php pdo mamp


【解决方案1】:

您对连接的引用使用不正确,因此只有 1 个参数被发送到 PDO 连接。正确代码:

$conn = new PDO("mysql:host=$server;dbname=$database;", $username, $password);

简单演示 (https://eval.in/647408):

function simple($a, $b = 'empty', $c = 'empty') {
     var_dump('a=' . $a);
     var_dump('b=' . $b);
     var_dump('c=' . $c);
}
simple('a,b,c');
echo "\n" . 'version 2' . "\n\n";
simple('a','b','c');

输出:

string(7) "a=a,b,c"
string(7) "b=empty"
string(7) "c=empty"

version 2

string(3) "a=a"
string(3) "b=b"
string(3) "c=c"

引号中的逗号不会被读取为参数分隔符。

【讨论】:

    猜你喜欢
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    相关资源
    最近更新 更多