我正在尝试使用PHP类从我的表中获取信息,但它无法正常工作
请注意,我知道我正在使用mysql_*
个功能。
在php页面上调用
print $User->getCredits();
类
require 'dbconfig.php';
class User {
public function getCredits($uid)
{
echo 'asda';
$rs = mysql_query("SELECT credits FROM `users` WHERE oauth_uid = '$uid'");
$row=mysql_fetch_object($rs);
return $row->credits;
}
}
答案 0 :(得分:0)
问题是双重的:
$uid
传递给getCredits()
方法。按原样保留您的班级定义,您可以这样做:
在php页面上调用
$uid = 1;
$user = new User();
print $user->getCredits($uid);
但是,我建议你重新设计你的类,用构造函数中的用户id实例化它,然后你的函数应该在查询中使用本地用户id param,而不是在方法级别要求uid。试试这个:
在php页面上调用
$uid = 1;
$user = new User($uid);
print $user->getCredits();
<强>类强>
require 'dbconfig.php';
class User {
private $_uid;
public function __construct($uid) {
$this->_uid = $uid;
}
public function getCredits()
{
echo 'asda';
$sql = "SELECT `credits`
FROM `users`
WHERE `oauth_uid` = '{$this->_uid}'";
$rs = mysql_query($sql);
$row = mysql_fetch_object($rs);
return $row->credits;
}
}
答案 1 :(得分:0)
have you created object of class `"User"` like this:
$User = new User();
答案 2 :(得分:-1)
在我看来,在没有班级实例的情况下调用成员函数并且还没有通过用户ID:
print $ User-&gt; getCredits();
除非你有一个与该类同名的变量$ User(有点令人困惑?)。那是你看到的问题吗?此外,您还缺少函数参数uid
如果您将其定义为静态函数,则可以执行User::getCredits($uid)
。要么是要么创建类的实例...... $thisUser = new User(...); $thisUser->getCredits(...)
。
答案 3 :(得分:-1)
// Insert code her to connect to db (mysql_connect / mysql_pconnect if you use the mysql -family ; but you should really switch to be using mysqli_*, which is mostly the same, but it's newer and might use mysqlnd php native driver for better performance)
$user = new User();
echo $user->getCredits();
另外你应该添加错误检查(mysql_error())和转义$ uid(如果它只能是int,你可以使用intval,但是一个基因解决方案就是使用mysql_real_escape_string)
如果你使用反引号,你应该一致地使用它们,例如:
"SELECT `credits` FROM `users` WHERE `oauth_uid` = '" . mysql_real_escape_string($uid) . '"