如何在php中有效地连接到mysql,而无需重新连接每个查询
我每次学习关于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
class 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"); } 根据评论:
你可能想考虑你是否使用mysql_connect或mysql_pconnect.但是,您仍然应该只在每个脚本连接一次. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |