1
데이터베이스에 연결되어 있고 테이블과 셀에 대한 모든 참조가 올바른 것으로 가정합니다. 어떻게 작동합니까?PHP - 클래스를 사용하여 사용자 정보 가져 오기
class User
{
private $_display;
private $_email;
public function __construct($username)
{
$fetch_user = mysql_query("SELECT * FROM `registered_users` WHERE `user_name`='$username'");
$fetch_user = mysql_fetch_array($fetch_user);
$this->_display = $fetch_user['user_display'];
$this->_email = $fetch_user['user_email'];
}
}
$person1 = new User('username');
echo "Information: " . print_r($person1, TRUE);
문제는 아무것도 반환하지 않습니다. 디버깅 할 때 오류 또는 아무 것도 던지지 않습니다. 그래도 가능한 방법인가요? :
<?php
class User{
private $username;
private $data;
public function __construct($username){
$this->username = $username;
if($this->valid_username()){
$this->load();
}
}
private function load(){
// Let's pretend you have a global $db object.
global $db;
$this->data = $db->query('SELECT * FROM registered_users WHERE user_name=:username', array(':username'=>$this->username))->execute()->fetchAll();
}
public function save(){
// Save $this->data here.
}
/**
* PHP Magic Getter
*/
public function __get($var){
return $this->data[$var];
}
/**
* PHP Magic Setter
*/
public function __set($var, $val){
$this->data[$var] = $val;
}
private function valid_username(){
//check $this->username for validness.
}
// This lets you use the object as a string.
public function __toString(){
return $this->data['user_name'];
}
}
사용 방법 : S
** 경고 **, 코드 * 수도 SQL 주입 공격 –
을에 * 취약 작동하지 않는 것은 무엇입니까? 무슨 일이 일어나길 원하니? 우리가 더 나은 대답을 줄 수 있도록 귀하의 질문에 약간의 특이성을 추가하십시오. – Jon
'$ person1 -> _ 디스플레이; $ person1 -> _ email;'원하는 것을 인쇄해야합니다. – DarthVader