PHP - MYSQL - 测试数据库服务器(PHP - MYSQL - test datab

2019-07-05 06:25发布

我正在学习PHP MYSQL,并试图建立一个数据库。

我下面这个教程http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app

到目前为止,我测试,看看如果服务器有到MySQL访问。 当我使用下面的代码。

?php

class RedeemAPI {
   private $db;

   // Constructor - open DB connection
   function __construct() {
       $this->db = new mysqli('localhost', 'username', 'password', 'promos');
    $this->db->autocommit(FALSE);
}

// Destructor - close DB connection
function __destruct() {
    $this->db->close();
}

// Main method to redeem a code
function redeem() {
    // Print all codes in database
    $stmt = $this->db->prepare('SELECT id, code, unlock_code, uses_remaining FROM rw_promo_code');
    $stmt->execute();
    $stmt->bind_result($id, $code, $unlock_code, $uses_remaining);
    while ($stmt->fetch()) {
        echo "$code has $uses_remaining uses remaining!";
    }
    $stmt->close();
   }
} 
// This is the first thing that gets called when this page is loaded
// Creates a new instance of the RedeemAPI class and calls the redeem method
$api = new RedeemAPI;
$api->redeem();

?

我得到以下错误:

Warning: mysqli::mysqli() [mysqli.mysqli]: [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/user/Sites/promos/index.php on line 8

Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2002): No such file or directory in /Users/user/Sites/promos/index.php on line 8

Warning: mysqli::autocommit() [mysqli.autocommit]: Couldn't fetch mysqli in /Users/user/Sites/promos/index.php on line 9

Warning: mysqli::prepare() [mysqli.prepare]: Couldn't fetch mysqli in /Users/user/Sites/promos/index.php on line 20

Fatal error: Call to a member function execute() on a non-object in /Users/user/Sites/promos/index.php on line 21

难道我也许忘记启用的东西吗?

这或许可以解释为什么我无法通过我的IP地址,续集专业,只为127.0.0.1连接?

Answer 1:

有两种设置你要检查这个工作(假设你当然有MySQL服务器安装):

检查的价值mysql.default_socket在你的PHP配置。

检查的值socket在你的MySQL配置文件下[mysqld]标题。

这些值必须相同; 如果他们不,改变一个相匹配的其他并重新启动相应的服务。



Answer 2:

Apache的服务器使用,而不是“本地主机”“127.0.0.1”



Answer 3:

这似乎是一个常见的问题,如google搜索它产生了不少成果。 我(虽然从来没有在Windows)上遇到这个问题我的两个Linux的盒子,以及在某些时候,我决定只使用127.0.0.1所有dev的服务器上。 基本上,本地主机使MySQL服务器使用套接字连接,但你的配置不指向套接字文件正确。

这里有几个你可能会发现有用的资源:

http://westsworld.dk/blog/2011/03/problems-connecting-to-unixvarmysqlmysql-sock/ -基本上是@Jack建议,但更深入

无法连接到MySQL在Mac上-失踪的mysql.sock文件 -这里是如何找到您的套接字文件(出于某种原因,我的php.ini有路径错了,我想你的情况可能是相似的)。

我希望这有帮助。



文章来源: PHP - MYSQL - test database server