function connect(){
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("database");
}
我在需要连接的地方使用此功能
例如:
<?php
connect();
$lastnews_sql = mysql_query("SELECT text,time FROM small WHERE active='0' ORDER BY time DESC LIMIT 10");
if(mysql_num_rows($lastnews_sql)) {
while($Result123 = mysql_fetch_object($lastnews_sql)) {
?>
并使用此选项: 文本; ?&GT;
在使用结束时:
<?php
}
}
mysql_close();
?>
有超过10个connect();和mysql_close();在索引文件
因此索引文件中的连接错误太多
我该如何优化这个方法?
答案 0 :(得分:1)
单身模式似乎适合这种情况。
class Database
{
private static $instance;
public function getInstance()
{
if(self::$instance == null)
{
// Create a connection to the database.
// NOTE: Use PDO or mysqli. mysql is deprecated.
}
return self::$instance;
}
}
使用强>
在您的课程中,假设您使用connect
对象,而不是调用PDO
,您可以执行以下操作:
$db = Database::getInstance();
$statement = $db->prepare("SELECT * FROM tblName WHERE val = :val");
$statement->bindParam(":val", $value);
$statement->execute();
$result = $statement->fetchAll();
为何选择此模式?
Singleton模式的优点是一次只能存在一个实例。这意味着您只能创建一个与数据库的连接。
设置
好的,所以你要做的第一件事是创建一个新文件,我们称之为Database.php
。在Database.php
内,您想要编写我编写的代码,只需 NOT 使用mysql_*
。查看我提供的PDO
教程,了解如何使用PDO
对象连接到数据库,然后将该连接代码放在if statement
内,这样就可以了看起来像:
if(self::$instance == null)
{
self::$instance = new PDO('mssql:host=sqlserver;dbname=database', 'username', 'password');
}
然后,要在另一个类中使用它,请在顶部放置一个require
语句。类似的东西:
require_once('Database.php');
最后,请查看我在上面的use
部分中添加的代码。这就是你在课堂上使用它的方法。
有用的链接
PDO教程:http://php.net/manual/en/book.pdo.php
单身人士模式:http://www.oodesign.com/singleton-pattern.html