1

好的,我有一个充满值的数据库,其中一个字段值用于潜在客户,另一个字段值用于客户...

我只想检索客户信息...

函数怎么写???

更新

这是我尝试编写的脚本:

<?php 
    try { 
        $sql = "SELECT * FROM clients" // WHERE history" or die(mysql_error()); 

        foreach ($dbh->query($sql) as $row) { 
            $row['history'] = $value; 

            if ($value == 'clients'){           
                echo "1212"; 
            } else { 
                echo "Failed"; 
                return; 
            } 
        } 

        $dbh = null; 
    } catch (PDOException $e) { 
        echo "Failed: " . $e->getMessage(); 
        $dbh->rollback(); 
    }
?>
4

2 回答 2

1

没有理由在这里进行回滚,特别是因为您还没有开始事务,而这只是一个 SELECT,所以没有什么可回滚的……我也不确定您为什么要取消 $dbh。可以将 $dbh 重用于其他查询,或者在整个应用程序中......

此外,您的 select 语句应该反映您实际需要的数据。如果您只需要历史,那么 SELECT history FROM clients[...] 是最好的。

<?php 
try { 
    $sql   = "SELECT * FROM clients WHERE history = 'clients'"; 
    $query = $dbh->prepare($sql);

    $query->execute();

    while($row = $query->fetch())
    {
      if($row['history'] == 'clients'){
        echo '1212';
      }
    }
} catch (PDOException $e) { 
    echo "Failed: " . $e->getMessage(); 
}
?>
于 2009-09-21T17:11:24.043 回答
0

根据您的示例脚本,这将执行相同的操作,但它将条件运算符放在数据库层的查询中,而不是应用程序层的脚本中:

<?php 
    try { 
        $sql = "SELECT * FROM clients WHERE history = 'clients'" // WHERE history" or die(mysql_error()); 

        foreach ($dbh->query($sql) as $row) {                       
            echo "1212";  
        } 

        $dbh = null; 
    } catch (PDOException $e) { 
        echo "Failed: " . $e->getMessage(); 
        $dbh->rollback(); 
    }
?>

当然,它显然不会像您的示例那样反映非客户端行,但是根据我对您的问题的理解,这是您真正想要发生的。

于 2009-09-21T04:10:16.357 回答