请问PHP怎样用面向对象方式连接MySQL数据库?

请问PHP怎样用面向对象方式连接MySQL数据库?,第1张

<?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 "连接成功"

学习可以参考:http://www.runoob.com/php/php-mysql-select.html

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=localhostdbname=test"

$db= new PDO($dbh,'xueyanxiang','xueyanxiang')

$objQuery= $db->query("select * from user")

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

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

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

?>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10873709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存