我尝试创建一个像“Laravel Model”这样的模型。
我有一个mysql表。它的名字是“用户”。表中有3个用户。
1-史蒂夫罗杰斯 2- Obadiah Stane 3- Tony Stark
我做了一个模特但没有工作。我的代码:
abstract class Model
{
protected static $properties = array();
public static function find($id)
{
global $config;
try {
$db = new PDO($config['dsn'], $config['user'], $config['password']);
} catch (PDOException $e) {
die ('Connect problem: <pre>' . $e->getMessage() . '</pre>');
}
$db->exec("SET NAMES 'utf8'; SET CHARSET 'utf8'");
$row = $db->query("SELECT * FROM ".static::$table." WHERE id='".$id."' LIMIT 1")->fetch();
if ($row)
{
foreach ($row as $key => $value)
{
if (is_numeric($key)) continue;
static::$properties[$key] = $value;
}
}
return $row ? new static : false;
}
public function __get($property)
{
return static::$properties[$property];
}
}
我使用以下内容:
class User extends Model
{
public static $table = 'users';
}
$k1 = User::find(1);
$k2 = User::find(2);
$k3 = User::find(3);
echo $k1->name." ".$k1->lastname."<br>".$k2->name." ".$k2->lastname."<br>".$k3->name." ".$k3->lastname;
结果:
托尼·斯塔克(Tony Stark)托尼·斯塔克(Tony Stark)托尼·斯塔克(Tony Stark)
我想要这个结果:
史蒂夫·罗杰斯(Obadiah Stane)托尼·斯塔克(Tony Stark)
我的错误在哪里?