使用 php 脚本连接到 mysql

Connect to mysql using php script

我阅读了有关常见问题的留言板通知。我知道这个问题很常见,但我查看了 Whosebug 上的所有相关帖子,但找不到解决此问题的方法。

我使用的是最新的 MAMP。我有一个 mysql 数据库,我使用 MAMP 附带的 mysql 在命令行中设置了它。我有一个名为 "phpuser" 的用户,其密码是 "phpuser"。我已经检查了很多次,可以通过命令行使用该用户和密码登录。

这是我的代码。它直接来自这里的介绍教程 (http://www.w3schools.com/php/php_mysql_connect.asp):

<?php
$servername = "localhost";
$username = “phpuser”;
$password = “phpuser”;

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";
?>

当我 运行 它使用最新的 MAMP php 版本时,我得到这个错误:

Nicks-MacBook-Pro:howdy Nick$ /Applications/MAMP/bin/php/php5.6.2/bin/php first_db.php
Notice: Use of undefined constant “phpuser” - assumed '“phpuser”' in /Applications/MAMP/htdocs/howdy/first_db.php on line 3
Notice: Use of undefined constant “phpuser” - assumed '“phpuser”' in /Applications/MAMP/htdocs/howdy/first_db.php on line 4
Warning: mysqli::mysqli(): (28000/1045): Access denied for user '“phpuser”'@'localhost' (using password: YES) in /Applications/MAMP/htdocs/howdy/first_db.php on line 7
Connection failed: Access denied for user '“phpuser”'@'localhost' (using password: YES)

我已经尝试 运行 使用默认的 php 版本,然后我得到了一个不同的错误:

Nicks-MacBook-Pro:howdy Nick$ php first_db.php
Warning: mysqli::mysqli(): (HY000/1045): Access denied for user '“phpuser”'@'localhost' (using password: YES) in /Applications/MAMP/htdocs/howdy/first_db.php on line 7
Connection failed: Access denied for user '“phpuser”'@'localhost' (using password: YES)

我试过使用 127.0.1.1 而不是本地主机,但它也不起作用。我检查了我的主机文件,看起来不错。无论如何,这是:

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

我还尝试了 运行 此处 MAMP 文档中的示例代码:http://www.mamp.info/en/documentation/MAMP-3-User-Guide.pdf

我运行以下:

<?php
 DEFINE('DB_USERNAME', 'phpuser');
 DEFINE('DB_PASSWORD', 'phpuser');
 DEFINE('DB_HOST', 'localhost');
 DEFINE('DB_DATABASE', 'status');
 // http://www.php.net/manual/en/mysqli.connect.php
 $mysqli = new mysqli(DB_HOST, DB_USERNAME,
DB_PASSWORD, DB_DATABASE);
 if (mysqli_connect_error()) {
 die('Connect Error (' . mysqli_connect_errno()
. ') ' . mysqli_connect_error());
 }
 echo 'Connected successfully.';
 $mysqli->close();
?>

我收到以下错误:

Nicks-MacBook-Pro:howdy Nick$ /Applications/MAMP/bin/php/php5.6.2/bin/php first_db.php
Notice: Use of undefined constant ‘phpuser’ - assumed '‘phpuser’' in /Applications/MAMP/htdocs/howdy/first_db.php on line 3
Notice: Use of undefined constant ‘phpuser’ - assumed '‘phpuser’' in /Applications/MAMP/htdocs/howdy/first_db.php on line 4
Notice: Use of undefined constant ’status’ - assumed '’status’' in /Applications/MAMP/htdocs/howdy/first_db.php on line 6
Warning: mysqli::mysqli(): (28000/1045): Access denied for user '‘phpuser’'@'localhost' (using password: YES) in /Applications/MAMP/htdocs/howdy/first_db.php on line 9
Connect Error (1045) Access denied for user '‘phpuser’'@'localhost' (using password: YES)

我试过其他教程,但都 return 错误。我尝试使用 define() 函数而不是变量,但这似乎不起作用。我已经通读了几个关于 "Use of undefined constant" 问题的帖子,但我看不到任何解决方案如何适用于我。

我还尝试使用以下代码将 link 添加到 mysql.socket。这对我也没有帮助(我没有要启动的 /var/mysql 文件)。

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

我也尝试过使用不同的 mysql 套接字,但无法正确获取 运行 的任何代码。

您在 phpuser 周围使用的引号 (") 看起来像特殊字符(从 word 复制粘贴?)...尝试用 (") 替换它们。