mysql select convert to zend framework select


mysql select convert to zend framework select

我试图将一个简单的mysql-select查询转换为zend框架-select

所以我有这个:

<?php
 $HOST = "localhost";
 $USER = "root";
 $PASS = "";
$conexion = mysql_connect($HOST,$USER,$PASS) or die("Problemas en la conexion");
 mysql_select_db("rapidoypoderosodb",$conexion) or die("Problemas en la seleccion de la base de  datos");
 mysql_query("SET NAMES 'utf8'");

$sql= "SELECT DISTINCT  * FROM especialistas WHERE activo='1'order by estado";
$result=mysql_query($sql);
$options = '<option id="idSelect" value="">seleccione estado...</option>';
while ($row=mysql_fetch_array($result))
{ 
    $estado = $row["estado"];
    $options.='<OPTION VALUE="'.$estado.'">'.$estado.'</option>';
}
echo $options;
?>

我已经转换了:

<?php
    global $WHG_DB_HOST, $WHG_DB_USER,$WHG_DB_PASSWD,$WHG_DB_REPLDB;
            $db = new Zend_Db_Adapter_Pdo_Mysql(array(
                'host' => $WHG_DB_HOST,
                'username' => $WHG_DB_USER,
                'password' => $WHG_DB_PASSWD,
                'dbname'   => $WHG_DB_REPLDB
            ));
            $db->query("SET NAMES 'utf8'"); 
        $select = $db->select() 
                        ->distinct()
                        ->from(array('e' => 'especialistas'))  
                        ->where('e.activo = 1', $VARIABLE)
                        ->order('e.estado');            
        $result = $db->fetchAll($select);
        $options = '<option id="idSelect" value="">seleccione estado...</option>';                      
        foreach($result as $row){
            $estado = $row["estado"];
            $options.='<OPTION VALUE="'.$estado.'">'.$estado.'</option>';
        }
        echo $options;
?>

问题是理论上不起作用,我的index.php给了我一个选择一个选项的列表,但不起作用。为什么?

调试Select最简单的方法是手动尝试生成的SQL查询。只需回显您选择的实例,__toString方法就会组装查询。

关于您的代码,where子句中只有一个小错误。将值定义为第二个参数,以便正确转义和引用。

    $select = $db->select()
        ->distinct()
        ->from(['e' => 'especialistas'])
        ->where('e.activo = ?', 1)
        ->order('e.estado');