我使用与数据库的连接来了解我保存的用户,从而使用它们来验证登录。是否建议每个请求(登录)都有连接和断开连接?
附代码:
require_once "conn.php";
function validUser(&$error){
if((!isset($_POST['user'])) || (!isset($_POST['pass']))){
$error[0] = "Usuario y/o contraseña incorrectos.";
return null;
}
$user = $_POST['user'];
$pass = $_POST['pass'];
if(($user == '') || ($pass == '')){
$error[0] = "Usuario y/o contraseña incorrectos.";
return null;
}else{
$con = connection();
$sql = "SELECT name FROM usuarios WHERE name = :user AND password = :pass";
$query = $con->prepare($sql);
$query-> bindParam(':user', $user);
$query-> bindParam(':pass', $pass);
$query-> execute();
$contador = $query -> rowCount();
if($contador != 1){
$error[0] = "Usuario y/o contraseña incorrectos.";
return null;
}
$con = null;
return $user;
}
}
就像生活中的一切:这取决于。并非一切都是非黑即白的,这样的问题没有具体的答案。这将取决于许多因素,例如:
特别是在 PHP 中,除非您定义持久连接,否则与数据库的连接将在脚本结束时自动关闭,因此在页面的生命周期中多次打开/关闭连接可能是矫枉过正:您会减慢页面并不必要地消耗资源。
但这并不意味着您不应该这样做:如果您的系统不需要实时响应并且速度不是关键因素,那么打开/关闭多个连接或在整个生命周期内保持一个打开之间的区别脚本几乎可以忽略不计。。
我对您提出的案例的建议是:保持原样。我认为您正在尝试过早地优化您还不知道是否会成为问题的东西。关注系统的其他部分,如果您发现打开/关闭多个连接会给您带来某种问题(可能不会),您可以尝试其他选项(例如,需要它的单个脚本连接或连接工厂)。
引用 Knuth 的话:“真正的问题是程序员在错误的时间和错误的地方花费太多时间担心效率;过早的优化是编程中所有(或至少是大多数)邪恶的根源。 ”