Mysql
 sql >> Base de données >  >> RDS >> Mysql

Codeigniter simple_query vs constructeur de requêtes (insérer, mettre à jour et supprimer)

simple_query() est la seule méthode de base de données dans CodeIgniter qui se comporte comme vous l'avez souligné. Comme l'indique la documentation :"La plupart des utilisateurs utiliseront rarement cette fonction."

À quelques exceptions près, toutes les autres méthodes de Query Builder renvoient soit un DB_query_builder instance un CI_DB_result objet ou - dans le cas des requêtes de type "écriture" - un booléen qui indique le succès ou l'échec. Les quelques exceptions renvoient un entier, une chaîne ou mixte (une valeur ou FALSE).

Toutes les méthodes qui acceptent les valeurs d'entrée échappent (ou éventuellement ne s'échappent pas) les valeurs fournies.

Bien que Query Builder (QB) soit un excellent outil, il n'est souvent pas nécessaire. Utilisation de $this->db->query('your statement here'); est souvent plus efficace. Comprendre que le but de QB est de créer une chaîne qui est littéralement utilisée dans un appel à db->query('a query string'); .

Alors au lieu de taper tout ça...

$this->db->select('id, name, email');
$this->db->from('customers');
$this->db->where('id', $id)
$this->db->where('active', $is_active)
$query = $this->get();
$result = $query->result();

Taper ce qui suit produit exactement les mêmes résultats que ci-dessus car il fournit directement la chaîne de requête que QB a construite dans le code ci-dessus. (La requête est également complètement échappée.) Mais elle exécute une tonne de code en moins pour y arriver. (Avec moins de frappe.)

$query = $this->db->query("Select id, name, email from customers where id = ? and active = ?", [$id, $is_active]);
$result = $query->result();

Ceci est un exemple d'utilisation de Query Binding

L'étude du code source principal (principalement dans les fichiers 'pilote') vous montrera où utiliser simple_query() est approprié et utile.