php - mysql_pconnect() - Nginx、php5-fpm、mysql

标签 php mysql sql nginx

我有一个游戏,分为 3 个世界。今天我在我的游戏中更新了世界 3。

更新 mysql_pconnect 后随机更改选定的数据库,尽管我已经设置了数据库“s3”。在我的网站上几秒钟后,我看到了来自数据库“s2”或“s1”的数据。

我为我的数据库“s3”创建了一个新用户,当我连接时一切正常,但是 mysql 为一个用户连接创建了新线程,所以有什么问题吗?

我在任何时候都为 mysql_pconnect 使用同一个用户,所以我应该为每个数据库创建一个用户?

class MySQL {

static public function ConnectToDb($Host, $User, $Password, $Database) {

    @mysql_pconnect($Host, $User, $Password) or die(mysql_error());
    mysql_select_db($Database);
    mysql_set_charset('utf8');

}

$System['BazaDanych'] = array('login' => 'root', 'haslo' => '', 'host' => 'localhost', 'baza' => 's2');

MySQL::ConnectToDb($KonfiguracjaSystemu['BazaDanych']['host'] , $KonfiguracjaSystemu['BazaDanych']['login'] , $KonfiguracjaSystemu['BazaDanych']['haslo'] , $KonfiguracjaSystemu['BazaDanych']['baza']);

这是我本地配置的代码。

汤姆

最佳答案

首先,在连接时,该函数将首先尝试查找已经使用相同主机、用户名和密码打开的(持久)链接。如果找到,将返回它的标识符而不是打开新连接。

其次,脚本执行结束时不会关闭与SQL服务器的连接。相反,该链接将保持打开状态以供将来使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的链接)。

阅读更多相关信息:

http://php.net/manual/en/function.mysql-pconnect.php

关于php - mysql_pconnect() - Nginx、php5-fpm、mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28799076/

相关文章:

javascript - 如何使用 javascript 从 php 脚本交互获取数据

php - PHPUnit 中的全局常量

php - 使用php在iframe中回显youtube视频src

SQL Server - 列数据类型和镶嵌方案不匹配

mysql - SQL 获取小于/介于十进制值 (13,6) 之间

php - 我总是需要使用 mysql_fetch

mysql - DATEDIFF() 函数关于以月为单位返回结果的问题

mysql - 如何将我的 sql 查询转换为 laravel ORM

php - laravel 模型获取具有自定义值的数据

mysql - 自连接表以获取 2 列的所有组合的值