我正在尝试从程序切换到OOP php,我可以连接到数据库并在程序中使用它很好但是经过几个小时的头部刮擦,谷歌搜索和小调整/更改我承认失败并得出结论我必须遗失了什么。
我有两个文件,我的IDE标记语法问题显然与第一个文件(test.php)的“函数”部分有关,但我无法弄清楚是什么,有没有任何想法?这两个文件如下。很抱歉格式化但由于某种原因我无法在此textarea中标记。
我假设它与缺少构造函数有关。我试图添加一个而不是配置功能,但我仍然有语法问题。在文档/教程中,我可以在php中找到构造函数的提及和html中的函数,但似乎没有解释它们如何与示例一起工作。
免责声明:这两个文件都被<?php ?>
标记包围,我目前没有解决安全措施问题。走路之前你可以跑步和所有这一切。我还尝试在test.php的开头抛出一个doctype,并在适当的地方用<html>
<head>
和<body>
标签填充它,但无济于事。使用Apache 2.2.22和PHP 5.3.13。
// ------- Test.php start -------
include 'obj_lib.php';
$db = new database;
$db = function config('test', 'root', '', 'localhost');
$db = function connect();
$db = function test_database();
// ------- Test.php end -------
// ------- obj_lib.php start -------
class database
{
private $username;
private $password;
private $database;
private $server;
private $db_handle;
private $db_found;
public function config($indatabase=null, $inusername=null, $inpassword=null, $inserver=null)
{
$this->username = $inusername;
$this->password = $inpassword;
$this->database = $indatabase;
$this->server = $inserver;
}
public function connect()
{
$this->db_handle = mysql_connect($this->server, $this->username, $this->password);
$this->db_found = mysql_select_db($this->database, $this->db_handle);
}
public function test_database()
{
echo "$this->username"."$this->password"."$this->database"."$this->server"."$this->db_handle"."$this->db_found";
}
}
// ------- obj_lib.php end -------
答案 0 :(得分:3)
$db = new database;
$db = function config('test', 'root', '', 'localhost');
$db = function connect();
$db = function test_database();
应该是
$db = new database;
$db->config('test', 'root', '', 'localhost');
$db->connect();
$db->test_database();