我即将开始一个新的项目,使用MySQL、javascript等在PHP中构建一个网站.我的问题是,我是否可以创建一个“使用PHP连接到MySQL数据库的类”,并在每次想插入、更新或删除某个内容时调用这个类。我对php很陌生,所以简单点,您能给我发送示例代码或链接到教程吗?现在,当我想要做一个连接时,我把连接放在php的顶部,这个连接可以工作,但是很多页面上有很多重复的代码。
category.php
<?php
// connect to mysql db
$con = mysqli_connect("localhost", "root", "");
// use a mysql database
mysqli_select_db($con, "gaa2013");
// run a sqql query
$result = mysqli_query($con, "select * from categories");
print("<form method='POST' action=\"home.php?page=category\">");
print("<select name = 'cat'>");
print("<option selected=\"selected\" style=\"background-color: blue\">All</Option>");
//print fields from each row
while($row = mysqli_fetch_array($result)){
$curr = $row['description'];
print("<option value='$curr'>$curr</option>");
}
print("</select>");
print("<input type=\"submit\" name=\"submit\" value=\"Select a Category\">");
print("<hr>");
more code....login.php
//If there are input validations, redirect back to the login form
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: index.php");
exit();
}
// connect to mysql db
$con = mysqli_connect("localhost", "root", "");
// use a mysql database
mysqli_select_db($con, "gaa2013");
// run a sqql query
$result = mysqli_query($con,"select * from users WHERE username='$username'");
//$num_rows = mysql_num_rows($result);
//Check whether the query was successful or not
if($result) {
while($row = mysqli_fetch_array($result)){
//echo "$num_rows Rows\n";
$id = $row['id'];
$userp = $row['username'];
$pass = $row['password'];
$_SESSION['SESS_MEMBER_ID'] = $id;
$_SESSION['SESS_USERNAME'] = $userp;
$_SESSION['SESS_PASSWORD'] = $pass;
session_write_close();
header("location: home.php");
exit();
}
more code.....提前感谢
格曼
发布于 2014-04-19 17:53:38
免责声明:,这只是一个介绍,__。我不建议经常使用这个。
您的目标是避免这种情况:
// connect to mysql db
$con = mysqli_connect("localhost", "root", "");
// use a mysql database
mysqli_select_db($con, "gaa2013");..。每次你想要建立联系。
要做到这一点,一种方法可以是设计模式: Singleton。
现在:
class Database {
private static $connection = null;
public static function getInstance()
{
static $connection = null;
if (null === $connection) {
$connection = new Database();
}
return $connection;
}
/**
* Protected constructor to prevent creating a new instance of the
* *Singleton* via the `new` operator from outside of this class.
*/
protected function __construct()
{
// connect to mysql db
$con = mysqli_connect("localhost", "root", "");
// use a mysql database
mysqli_select_db($con, "gaa2013");
return $con;
}
}然后,您将获得并运行如下数据库连接:
// Get DB connection
$connection = Database::getInstance();
$result = mysqli_query($connection, "select * from categories");这是怎么回事?
不过,我想让你知道,现在讨论的是单例模式是否被批准。我认为只要你在学习,你就不应该太在意它,。我建议你自己玩这些技巧:测试,尝试,看看会发生什么,如果你觉得它是对的或不对的。
https://stackoverflow.com/questions/23159416
复制相似问题