我想在PHP PDO OOP中发生以下事情
$conn = mysqli_connect("localhost", "root", "blogger.g", "test");
$query = mysqli_query($conn, "SELECT * FROM users WHERE username='sandeep'");
$row = mysqli_fetch_assoc($query);
echo $row['password'];
我在OOP方式中使用的代码如下
class getResults{
public $results;
public function start(){
try {
$DTH = new PDO("mysql:host=127.0.0.1;dbname=test", "root", "blogger.g");
$STH = $DTH->query("SELECT * FROM users WHERE username='sandeep'");
$results = $STH->fetchAll(PDO::FETCH_OBJ);
return $results;
} catch (PDOException $e){
return $e->getMessage();
}
}
}
var_dump(getResults::start());
我得到了以下输出
array(1) { [0]=> object(stdClass)#3 (3) { ["id"]=> string(1) "1" ["username"]=> string(7) "sandeep" ["password"]=> string(8) "password" } }
我应该如何访问每个属性?
答案 0 :(得分:0)
如果使用while()循环遍历对象,则可以访问每一行。
while($row = getResults::start()) {
echo $row->id;
}
最后一条提示:如果您已经在使用PDO,请使用预备语句。为了您的安全。
答案 1 :(得分:0)
由于您的查询会生成一行,因此请勿使用fetchAll
:
$results = $STH->fetch(PDO::FETCH_OBJ);
就足够了。现在,将返回的值存储在变量中:
$x = getResults::start();
由于$x
是一个类对象,您可以通过->
运算符访问其成员:
echo $x->username . "\n" . $x->password;
或者,您可以使用PDO::FETCH_ASSOC
:
$results = $STH->fetch(PDO::FETCH_ASSOC);
$x = getResults::start();
echo $x['username'] . "\n" . $x['password'];