2010-02-06 4 views

Répondre

1
$firstname = 'alex'; 
$city = 'xx'; 

// AND query 
$select = $adapter->select() 
    ->from('person', array('id', 'firstname', 'lastname', 'city') 
    ->where('firstname = ?', $firstname) 
    ->where('city ?', $city); 


// OR query 
$select = $adapter->select() 
    ->from('person', array('id', 'firstname', 'lastname', 'city') 
    ->where('firstname = ?', $firstname) 
    ->orWhere('city = ?', $city); 

Jetez un coup d'oeil au manuel Zend_Db_Select pour voir d'autres exemples.

1

Vous pouvez voir les exemples Zend.DB manual

// Build this query: 
    // SELECT product_id, product_name, price 
    // FROM "products" 
    // WHERE (price < 100.00 OR price > 500.00) 
    //  AND (product_name = 'Apple') 

    $minimumPrice = 100; 
    $maximumPrice = 500; 
    $prod = 'Apple'; 

    $select = $db->select() 
       ->from('products', 
         array('product_id', 'product_name', 'price')) 
       ->where("price < $minimumPrice OR price > $maximumPrice") 
       ->where('product_name = ?', $prod); 
+0

Dans cette partie "prix <$ prix minimum OU prix> $ prix maximum" les variables ne sont pas nettoyées. Cela peut conduire à des injections SQL. –

+0

Désolé pour -1. Je ne savais pas que l'exemple venait du manuel. C'est faux, mais ce n'est pas de ta faute. Si vous éditez votre question, je peux annuler le vote. –

+0

D'une part, vous avez raison, mais d'autre part c'est complètement sûr car les variables sont définies 3 lignes avant et sont des entiers. Je suis d'accord cependant que si quelqu'un copie seulement sur le sélectionner, il peut être un problème. Pour expliquer comment construire une requête, c'est plus clair. –