这是我试图以面向对象的形式编写的原始代码..
$posResult = mysql_query("SELECT MAX(position)+1 FROM todo");
if(mysql_num_rows($posResult))
list($position) = mysql_fetch_array($posResult);
这就是我所处的地方....我想我需要bind_result?另外,我对mysql_fetch_array有一个问题......
if($stmt = $this->HH->Database->prepare("SELECT MAX(position)+1 FROM todo")) {
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows != FALSE) {
list($position) = mysql_fetch_array($posResult);
}
}
有人可以建议如何纠正这个问题吗?
答案 0 :(得分:1)
看起来你正在转向PDO,这很棒,这是一种更好的连接方式,但你仍然在尝试使用一些不起作用的旧mysql_*
命令。虽然有很多方法可以获取数据,但这是我最常用的方法:
if($stmt = $this->HH->Database->prepare("SELECT MAX(position)+1 FROM todo")) {
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_INTO, new yourClassName);
foreach($stmt as $yourClassObject)
{
$someVar=$yourClassObject->QueryColumnName;
// or
$this->someProperty=$yourClassObject->QueryColumnName;
}
}
我通常有一个与查询结果匹配的类,因此我使用FETCH_INTO
但您可以使用其他方法,例如返回索引数组,关联数组或其他方法。