PHP使用面向对象的编程方式来编写数据库操作类
创新互联业务包括:成品网站、企业产品展示型网站建设、高端网站设计、电子商务型网站建设、成都外贸网站制作(多语言)、电子商务商城网站建设、按需规划网站、营销型网站等。效率优先,品质保证,用心服务是我们的核心价值观,我们将继续以良好的信誉为基础,秉承稳固与发展、求实与创新的精神,为客户提供更全面、更优质的互联网服务!
步骤1:创建一个PHP的页面“config.php”定义数据库相关的参数
?php // config.php
define(?DB_USER?, "username");
define(?DB_PASSWORD?, "password");
define(?DB_DATABASE?, "database name");
define(?DB_SERVER?, "ip address of database server");
?
第2步:创建一个PHP的类,用于连接数据库,命名为“db_connect.php”
?php // db_connnect.php
class DB_Connect {
private $con;
// constructor
function __construct() {
// connecting to database
$this-con = $this-connect();
}
//Function to connect with database
private function connect() {
// import database connection variables
require_once __DIR__.?/config.php?;
try {
$conn = new PDO(?mysql:host=?.DB_SERVER .?;
dbname=?.DB_DATABASE, DB_USER, DB_PASSWORD);
$conn-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo ?ERROR: ? . $e-getMessage();
}
return $conn;
}
public function getDbConnection(){
return $this-con;
}
}
?
第3步:创建一个类,它包含了所有的功能,为您实现SQL查询,命名为“db_functions.php”
调用里面的函数进行SQL查询、以促进可重用性和可维护性
?php // db_functions.php
class DB_Functions {
private $con;
// constructor
function __construct() {
require_once __DIR__.?/db_connect.php?;
// connecting to database
$db = new DB_Connect();
$this-con = $db-getDbConnection();
}
public function selectUser($id) {
try {
$stmt = $this-con-prepare(?SQL语句?);
$params = array(?:id? = $id);
$stmt-execute($params);
return $stmt;
} catch(PDOException $e) {
echo ?ERROR: ? . $e-getMessage();
}
}
public function otherSQLfunction($parameter) {
// other sql code
}
}
第4步:最后,在你其他的PHP文件里面只需要简单地调用“db_functions.php”的方法
?php
require_once __DIR__.?/db_functions.php?;
$db = new DB_Functions();
$result = $db-selectUser($id);
// other code
?
?php
$servername = "localhost"; //你的连接地址,可以是ip
$username = "username"; //你的用户名
$password = "password"; //你的密码
$dbname = "myDB"; //你要连接数据库的名字
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn-connect_error) {
die("连接失败: " . $conn-connect_error);
}
echo "连接成功";
学习可以参考:
php程序编写分总分两种方式,分别为面向过程和面向对象,用两者比较你会更容易理解些
以下数据库操作为例:
面向过程:
$conn = mysql_connect('127.0.0.1', 'root', '123456') or die('连接不成功!');
mysql_select_db('test', $conn) or die('数据库不存在!');
$queryid = mysql_query("select * from sort");
while ($rs = mysql_fetch_assoc($queryid)) {
echo $rs['name'], 'br';
}
过程的代码给人感觉比较乱,不易管理,以下实现以上代码一样的功能,但代码清楚多了。
面向对象就是把常用的功能封装为一个类,类由属性和方法组成:
把以上过程代码封装成类,以文件形式保存为db.php
class db {
private $conn; //属性
private $queryid; //属性
//构造函数
public function db($host, $dbuser, $dbpasswd, $dbname) {
$this-conn = mysql_connect($host, $dbuser, $dbpasswd) or die('连接不成功!');
mysql_select_db($dbname, $this-conn) or die('数据库不存在!');
}
//查询方法
public function query($sql) {
$this-queryid = mysql_query($sql, $this-conn);
}
public function fetch_assoc() {
return mysql_fetch_assoc($this-queryid);
}
}
//在a.php文件中实例化,代码使用变得简结和容易理解,代码的重用性
inclode('db.php');
$db = new db('127.0.0.1', 'root', '123456', 'test');
$db-query("select * from sort");
while ($rs = $db-fetch_assoc()) {
echo $rs['name'], 'br';
}