嗨,我正在尝试将此mysqli类转换为pdo,这是该类的mysqli版本,我似乎无法使pdo版本正常工作,如稍后在我的帖子中解释的
class rb_mysqli extends rbDatabase {
function query($query){
$query = $this->connection->query($query);
//$error = mysqli_error($this->connection); if(!empty($error)){ echo $error . "<br />Query that errored: ".$this->lastquery; }
return $query;
}
function real_escape_string($str)
{
$result = $this->connection->real_escape_string($str);
return $result;
}
function fetch_assoc($query){
$result = mysqli_fetch_assoc($query);
return $result;
}
function fetch_row($query){
$result = mysqli_fetch_row($query);
return $result;
}
function fetch_array($result){
$result = mysqli_fetch_array($result);
return $result;
}
function num_rows($query){
$result = mysqli_num_rows($query);
return $result;
}
function result($res,$row=0,$col=0){
$numrows = mysqli_num_rows($res);
if ($numrows && $row <= ($numrows-1) && $row >=0){
mysqli_data_seek($res,$row);
$resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res);
if (isset($resrow[$col])){
return $resrow[$col];
}
}
return false;
}
function insert_id($query){
return $this->connection->insert_id($query);
}
}
这是我尝试在pdo中执行的操作,但是由于某种原因,它无法执行与mysqli版本相同的操作,有人可以帮助我解决这个问题吗?
class my_pdo extends rbDatabase {
function query($query){
$query = $this->connection->prepare($query);
$query->execute();
return $query;
}
function real_escape_string($str)
{
return $str;
}
function fetch_assoc($query){
$result = $query->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
function fetch_row($query){
$result = $query->fetch(PDO::FETCH_ASSOC);
return $result;
}
function fetch_array($result){
$result = $result->fetch(PDO::FETCH_ASSOC);
return $result;
}
function num_rows($query){
$this->connection->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
$this->connection->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$this->connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
$this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$result = $query->fetch(PDO::FETCH_NUM);
var_dump($result[0]);
return $result[0];
}
function result($res,$row=0,$col=0){
$result = $res->fetch();
return $result[$col];
}
function insert_id($query){
return $this->connection->lastInsertId($query);
}
}