【发布时间】:2014-01-29 04:28:21
【问题描述】:
我有以下代码,其中包含使用 mysqli 与 SQL 数据库建立连接的类 DB。
<?php
class DB
{
private $mysqlilink;
private $errors;
function __construct($errors = array())
{
$this -> errors = $errors;
$this -> connect();
}
function connect()
{
$server = "127.0.0.1";
$user_name = "un";
$password = "pw";
$database = "db";
if ($this -> mysqlilink == null)
{
$this -> mysqlilink = new mysqli($server, $user_name, $password, $database);
if (mysqli_connect_errno())
{
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
}
return $this -> mysqlilink;
}
function __destruct()
{
$stmt -> close();
}
}
?>
我计划至少使用一个类(在它自己的脚本文件中)和专用的 PHP 函数,这些函数可以访问网站各个部分的数据库。在上面导入这个脚本后,我如何链接到它并通过对象的连接调用数据库?我正在使用以下代码:
<?php
include_once("connect.php");
class PageFunctions
{
function printText()
{
if ($stmt = $this -> mysqlilink -> prepare("SELECT Text, MoreText FROM mytext WHERE id = 1"))
{
$stmt -> execute(); $stmt -> store_result();
$rows = $stmt -> num_rows;
if ($rows == 0) { return 'Database Not Found'; }
else
{
$stmt -> bind_result($returnedText, $moreReturnedText); // Output variable(s)
while ($stmt -> fetch()) // Return results
{
return 'First text: ' . $returnedText . ' Second text: ' . $moreReturnedText;
}
}
$stmt -> free_result();
return;
}
else { printf("Prepared Statement Error: %s\n", $this -> mysqlilink -> error); }
}
}
?>
重申一下,我需要将第一个代码示例用作在多个其他类/代码文件中形成一个对象的类,例如第二个代码示例。由于我是 PHP 面向对象的新手,因此无法成功完成此任务,因此我想在想出一个糟糕的解决方案之前先征求一些专家的建议。
【问题讨论】: