将连接数据库更改为PDO

时间:2016-11-07 03:06:08

标签: php pdo

我最近有代码更改数据库连接到PDO。 实际上我做得对,成功。但我想在pdo连接中进行一些修改。 这是旧代码:

$sql = "select * from pengguna where marketing = '$nim_temp'";  
$result = mysql_query($sql);
if($result)
{
    while ($row = mysql_fetch_array($result)) 
    {                               
        $marketing= $row['marketing'];
        $password = $row['password'];                               
        $akses= $row['akses'];
    }
}

和我使用PDO的新代码:

$sql = "select * from pengguna where marketing = :nim_temp";    
$stmt=$conn->prepare($sql);
$stmt->execute(array(':nim_temp'=>$nim_temp));
$result=$stmt->fetch( PDO::FETCH_ASSOC );

if($result)
{
    while($row = $result)
    {                       
        //echo '<script type="text/javascript">alert("'.$row['marketing'].'");</script>';
        $marketing= $row['marketing'];
        $password = $row['password'];                               
        $akses= $row['akses'];
    }
}

没有$ result会成功,如果结果如下:

//$result=$stmt->fetch( PDO::FETCH_ASSOC );
//if($result){
    while($row = $stmt->fetch( PDO::FETCH_ASSOC ))

我想要的是,我仍然需要if($result)来触发我的其他代码。

1 个答案:

答案 0 :(得分:1)

您的查询是否成功现在由execute()确定,而不是由fetch()决定。所以你必须这样做:

$result = $stmt->execute(array(':nim_temp'=>$nim_temp));

if($result)
{
    while($row = $stmt->fetch(PDO::FETCH_ASSOC))
    { ... }
}