php面对对象连接数据库 php连接指定数据库

综合应用数据库知识和用面向对象编程技术在PHP程序中创建出学生类

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

?

PHP7连接mysql数据库方法

1、用 mysql_connect 的方法,PHP7会报致命错误

$conn= mysql_connect(‘localhost’,’xueyanxiang’,’xueyanxiang’);

Fatal error : Uncaught Error: Call to undefined function mysql_connect() in /Users/xueyanxiang/work/test/xue.php:31 Stack trace: #0 /Users/xueyanxiang/work/test/xue.php(119): xue-run() #1 { main} thrown in  /Users/xueyanxiang/work/test/xue.php  on line  31

原因是:

PHP5中使用mysql_connect()函数进行连接,但实际上,PHP5.5开始,MySQL就不推荐使用了,属于废弃函数

PHP7中貌似已经彻底不支持了,根据官网说明,取而代之的是如下两个:

本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之。参见 MySQL:选择

API 指南以及相关 FAQ 以获取更多信息。用以替代本函数的有:

mysqli_connect()

PDO::__construct()

使用时,不要在使用mysql_connect了,可以换用mysqli_connect(),用法基本类似吧,据说是面向对象的库。

php.ini中,也只有extension=php_mysqli.dll,而不再有extension=php_mysql.dll这个拓展了。

2、可以使用mysqli,对象化,方法名与被废弃的类似

$conn= mysqli_connect(‘localhost’,’xueyanxiang’,’xueyanxiang’);

3、PDO工具,推荐使用

$dbh= “mysql:host=localhost; dbname=test”;

$db= new PDO($dbh,’xueyanxiang’,’xueyanxiang’);

$objQuery= $db-query(“select * from user; “);

$res= $objQuery-fetchAll(PDO::FETCH_ASSOC);

不填写参数的话,默认是关联和索引都有,如下图

PHP问题,$this-> link ,问$this和link中间的符号是什么意思

没什么意思,就是一种调用符号,你这代码属于面向对象连接数据库了,多学习慢慢就懂了!