php - 函数 : Database connection in function or pass it as argument? 的最佳情况是什么

标签 php mysql database

我有一个页面,我首先在其中建立数据库连接。我用它来进行一些查询,之后我还使用一些函数。现在我不确定函数的最佳实践是什么:将数据库连接作为参数传递或在函数中创建自己的数据库连接?

在函数中创建数据库连接

function get_Number_of_Entries() {
  $mysqli = new mysqli(MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DATABASE);
  $stmt = $mysqli->prepare("SELECT * FROM users");
  $stmt->execute();
  $stmt->store_result();
  $count = $stmt->num_rows;
  $stmt->close();
  return $count;
} 

作为参数“$stmt”,函数中没有创建数据库连接

function get_Number_of_Entries($mysqli) {
  $stmt = $mysqli->prepare("SELECT * FROM users");
  $stmt->execute();
  $stmt->store_result();
  $count = $stmt->num_rows;
  $stmt->close();
  return $count;
}

最佳答案

通常,将连接作为参数传递将是更好的解决方案。 建立连接是一项昂贵的操作,更重要的是,多个连接可能会造成真正的麻烦。它可以锁定数据库以及更多场景。

我建议阅读有关单例模式的内容: https://en.wikipedia.org/wiki/Singleton_pattern

或工厂模式: https://www.tutorialspoint.com/design_pattern/factory_pattern.htm

关于php - 函数 : Database connection in function or pass it as argument? 的最佳情况是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44354880/

相关文章:

PHP 不切换

php - 图像插入数据库并显示使用 php 和 mysql 不起作用

mysql - varchar 2 是否比 varchar 255 更有效?

java - 您如何为电子邮件创建确认链接?

php - mySQL 在第二个选择中使用第一个选择的结果

php - 无法快速发布请求

php - 将 javascript 变量发布到单独的 .PHP 文件(使用 Ajax?)

php - 我需要使用单个查询将值插入到两个不同的表中

mysql - 确定mysql中两个字段的唯一组合的计数

database - Vertica 格式的 To_date 函数?