我每次学习关于PHP的新东西时都必须重写代码,就像一个
mysql连接不能在一个会话中作为一个句柄一样传递的事实.
你在项目中如何实现MysqL连接?很多人提出“连接池”,但是在阅读手册后,我仍然迷失了.就像:“连接池是MysqL_pconnect!” – 我:“和…?现实中有什么不同吗?你可以在会话中传递一个MysqL_pconnect吗?为什么这个看似神秘的光环?”
让我解释一下我的情况.我有一个名为“query1”的函数:
function query1($query) { $db = new MysqL(HOST,USER,PASS,DBNAME); $result = $db->query($query); $db->close(); return $result; }
这似乎是一种查询数据库的浪费和低效的方式(特别是因为您需要MysqL_real_escape_string等函数的MysqL句柄).要做什么正确的表格?有人可以帮帮我吗?
谢谢,我真的很感激一个诚实的答案.
通常,一旦页面加载就会发生连接. AKA
原文链接:https://www.f2er.com/php/139596.htmlclass Database{ public function connect() { $this->connection = MysqL_connect(); } // This will be called at the end of the script. public function __destruct() { MysqL_close($this->connection); } public function function query($query) { return MysqL_query($query,$this->connection); } } $database = new Database; $database->connect(); $database->query("INSERT INTO TABLE (`Name`) VALUES('Chacha')");
基本上,您打开页面开头的连接,在最后一页关闭它.然后,您可以在页面中进行各种查询,而不必对连接执行任何操作.
您甚至可以在构造函数中执行MysqL_connect,如Erik所示.
要使用上述使用全局变量(不建议,因为它创建全局状态),你会做一些类似的事情
Global $db; $db = new Database; // ... do startup stuff function doSomething() { Global $db; $db->query("Do Something"); }
哦,没有人提到你不必传递一个参数.只需连接
MysqL_connect();
那么MysqL_query将只使用最后的连接,无论范围如何.
MysqL_connect(); function doSomething() { MysqL_query("Do something"); }
根据评论:
I think you should use MysqL_pconnect() instead of MysqL_connect(),because MysqL_connect() doesn’t use connection pooling. – nightcoder