【发布时间】:2015-05-13 02:43:27
【问题描述】:
我试图让一个类中的一个函数与另一个函数一起工作,但没有成功。
这是我的代码:
<?php
class db {
public function dbLogin() {
$mysqli = new mysqli("127.0.0.1","user","passowrd","database");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";
}
public function selectQuery() {
$this->dbLogin();
$query = "
SELECT column
FROM table
";
if ($mysqli->query($query)) {
echo "success";
}
}
}
$fData = new db();
$fData->dbLogin();
$fData->selectQuery();
?>
数据库连接工作正常。但是,一旦查询行运行,我就无法得到任何回显。
到目前为止我已经尝试过:
-将dbLogin() 函数替换为construct() 函数,然后去掉$this->dbLogin 行和$fData->dbLogin() 行。这不起作用。
-以不同的变体移动此代码,以防我的顺序错误。那什么也没做。
-谷歌搜索/查看 StackOverflow 上的类似问题,但没有运气。
我可以轻松地实现这种程序风格,但现在是我摆脱这种风格的时候了。我确信有更好的方法可以使用 OOP 设计模式连接到数据库,但我对 OOP 是全新的,所以我试图以此作为一个教训,并更好地理解函数如何与彼此在一个班级内。我知道我可以将连接和查询放在一个函数中,但是我不知道如何使函数在类中相互交互。
如何根据dbLogin函数中的登录信息运行selectQuery函数中的查询?
【问题讨论】:
标签: php function class oop mysqli