Oop PDO从类方法返回$row
嘿,伙计们,我正在学习php中的OOP。当我试图在自己的类中定制PDO时,我遇到了一些问题。基本上,我已经尝试返回行,并在我的课堂外获取它。不幸的是,我不会工作。我对非对象上的成员函数fetch进行了此错误调用。看一看,如果可以的话给我一些建议。非常感谢Oop PDO从类方法返回$row,oop,methods,pdo,Oop,Methods,Pdo,嘿,伙计们,我正在学习php中的OOP。当我试图在自己的类中定制PDO时,我遇到了一些问题。基本上,我已经尝试返回行,并在我的课堂外获取它。不幸的是,我不会工作。我对非对象上的成员函数fetch进行了此错误调用。看一看,如果可以的话给我一些建议。非常感谢 $connection = new MySql(DBUSER, DBPASS); $row = $connection->query("select * from users", "name"); while($row->fetch
$connection = new MySql(DBUSER, DBPASS);
$row = $connection->query("select * from users", "name");
while($row->fetch(PDO::FETCH_ASSOC)){
echo "<p>". $row["name"] ."</p>";
}
下面是MySql类的外观:
class MySql{
private $dbc;
private $user;
private $pass;
function __construct($user="root", $pass=""){
$this->user = $user;
$this->pass = $pass;
try{
$this->dbc = new PDO("mysql:host=localhost; dbname=DBNAME;charset=utf8", $user, $pass);
}
catch(PDOException $e){
echo $e->getMessage();
echo "Problem z Połączeniem do MySql sprawdź haslo i uzytkownika";
}
}
public function query($query, $c1=""){
$mysqlquery = $this->dbc->prepare($query);
$mysqlquery->execute();
return $row = $mysqlquery->fetch(PDO::FETCH_ASSOC);
/* I WANT TO PERFORM COMENTED CODE OUTSIDE THE CLASS
while($row = $mysqlquery->fetch(PDO::FETCH_ASSOC)){
if($c1!=""){
echo "<p>". $row[$c1] ."</p>";
}
}
*/
}
如果要返回$mysqlquery对其进行迭代,则必须返回$mysqlquery,而不仅仅是一行
这是一个更好的类版本,大大改进了错误处理和安全性。但仍然糟糕的可配置性
class MySql{
private $dbc;
function __construct($user="root", $pass=""){
$dsn = "mysql:host=localhost; dbname=DBNAME;charset=utf8";
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$this->dbc = new PDO($dsn, $user, $pass, $opt);
}
public function query($query, $data = array()){
$stm = $this->dbc->prepare($query);
$stm->execute($data);
return $stm;
}
}
$connection = new MySql(DBUSER, DBPASS);
$stm = $connection->query("select * from users WHERE name = ?", array("name"));
while($row = $stm->fetch()){
echo "<p>". $row["name"] ."</p>";
}
伟大的它起作用了。我现在将安全提示应用于我的代码,并根据我的需要自定义您的代码。再次感谢。当做