PDO中的操作数替代方案

时间:2015-05-28 21:27:05

标签: php mysql arrays pdo

继承我的组织的一个副网站,直到我们找到一个Web开发人员。最初必须将整个PHP网站从MySQL_语句转换为PDO。做完作业后,我已经大部分都成功了,但现在已经有了一些"机制"可以说是发生故障。以下是一个这样的例子。我知道array()/ 4是一个非法的操作,但我找不到另一种方法来完成这个功能。这对我来说可能是一个学习上的差距,但我也猜测这个功能并没有按照设计的方式使用。任何意见将不胜感激,谢谢。

$result = $dbh->query($category);
if  ($dbh = $result->rowCount(1)){
    $cols=4;
    $rows = $result->fetch(PDO::FETCH_ASSOC);
    $rows = $rows/$cols;
    $extrarows=$cols-$rows;
    $extrarows=substr($extrarows,0,1);
    for ($i=0; $i<$rows; $i++) { 
        echo ("<tr>");
        for ($j=0; $j<$cols;$j++){
            //$rowdata=mysql_fetch_row($result);
            $rowdata = $result->fetch(PDO::FETCH_ASSOC);
            echo ("<td valign=\"top\" align=\"center\" width=\"20%\">\n");
            if ($rowdata!=""){

其他信息:

if ($e!=""){
    $page="SELECT galleryid from gallery where (year='$year' and event='$e') order by sortorder ASC;";
}elseif ($k!=""){
    $page="SELECT galleryid from gallery where (year='$year' and keyword='$k') order by sortorder ASC;";
}else{
    $page="SELECT galleryid from gallery where year='$year' order by sortorder ASC;";
}
$resultnext = $dbh->query($page);

$array=array();
while($rownext = $resultnext->fetch(PDO::FETCH_ASSOC)) {
    $newid=$rownext["galleryid"];
    $image=$rownext["imagetitle"];
    array_push($array,$newid);
}
$id=$_GET['id'];
$key=array_search($id,$array);
$first=array_slice($array,0,1);
$first=$first[0];

$last=array_slice($array,-1,1);
$last=$last[0];

$previous=array_slice($array,$key-1,1);
$previous=$previous[0];

$current=array_slice($array,$key,1);
$current=$current[0];

$next=array_slice($array,$key+1,1);
$next=$next[0];

1 个答案:

答案 0 :(得分:0)

原来我必须为每个$ result更改我的PDO语句 - &gt;取。我的初始部分是正确的,但需要省略FETCH_ASSOC。示例如下:

$result->fetch(PDO::FETCH_ASSOC)

也是

$rows = $result->fetch()