我主要是一名设计师,并且在PHP中没有很多OOP经验,所以请善待,因为我的术语可能不完全准确。这是PHP / OOP语法,我需要最多的帮助,我已经在这里和谷歌上搜索了几次解决方案,因为我想象这将是一个非常直接的问题,但没有找到任何帮助。
我正在尝试创建一个类方法,该方法使用客户端的帐户ID从数据库中提取客户帐户数据。我想要提取大约20个变量,并且可以访问我网站上的各个页面。
这是我的类文件(classfile.php):
class Accounts{
// Function to get client data from database.
public function getAccount($acctId){
require("/var/www/vhosts/aqios.com/httpdocs/00omvat/dbinfo.php");
mysql_connect("localhost","user","password") or die();
mysql_select_db("database") or die();
$query = "SELECT * FROM clients WHERE id='$acctId' LIMIT 1";
$result = mysql_query($query) or die();
while($row = mysql_fetch_array($result)){
$this->$firstName = $row["firstName"];
$this->$lastName = $row["lastName"];
$this->$address1 = $row["address1"];
$this->$address2 = $row["address2"];
$this->$city = $row["city"];
$this->$state = $row["state"];
//etc., etc.
}
mysql_close();
}
}
这是我的一个页面(index.php):
include_once('classfile.php');
$acctId = 111111;
$object = new Accounts();
$object->getAccount($acctId); //Script dies unless I comment this line out.
首先,除非我注释掉最后一行,否则脚本会死掉,因此我的语法必定存在问题。但我真正需要知道的是如何调用城市或其他任何变量到我的页面?我不知道正确的语法。我无法想象它会是$ object-> getAccount($ acctId) - > $ city。我知道这是错的。我如何从这个对象中调用城市或任何其他变量?
另外,我知道我应该使用另一种方法连接到我的数据库,一旦我弄清楚了这一点,我会这样做。
提前感谢您提供任何帮助!
杰森
答案 0 :(得分:1)
这是不正确的
$this->$firstName = $row["firstName"];
^---remove the $
应该是
$this->firstName = $row['firstName'];
后续行也一样。
答案 1 :(得分:0)
$this->firstName
代替$this->$firstName
$this
指的是对象,而不是方法它可以在没有显式初始化的情况下工作,但您应该定义为更好地将所有对象字段读取为public(或private / protected和write getter方法):
类帐户{
public $firstName; public $lastName ...
}
如果变量定义为3,您应该可以使用$object->firstName