sql >> Databáze >  >> RDS >> Mysql

Jak mohu použít připravené výpisy v CodeIgniter

CodeIgniter nepodporuje připravené výpisy. Pokud se podíváte na zdrojový kód pro třídu Database CI, uvidíte, že řeší vazby jednoduše nahrazením otazníků daty z předávaného pole:

Podporují pouze vazbu dotazu s nepojmenovanými zástupnými symboly. Viz http://ellislab.com/codeigniter/user-guide/database/ dotazy.html

Vazby dotazů

Vazby vám umožňují zjednodušit syntaxi dotazu tím, že systém nechá dotazy sestavit za vás. Zvažte následující příklad:

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));

Otazníky v dotazu jsou automaticky nahrazeny hodnotami v poli ve druhém parametru dotazovací funkce.

a http://ellislab.com/forums/viewthread/105112/#528915

Přestože CI nepodporuje připravené příkazy, podporuje vazby dotazů. S připravenými příkazy musíte zavolat nějaký typ funkce Prepare() a poté nějaký typ funkce execute(). S vazbami dotazů stačí zavolat jednu funkci a ta v podstatě dělá to samé. Z tohoto důvodu mám raději vazby dotazů než připravené příkazy.

Na okraj, změna ? na :foo se pouze mění z nepojmenovaných na pojmenované vazby (které CI zřejmě také nepodporuje). To, že používáte buď, nebo, neznamená, že připravujete prohlášení.



  1. Konfigurace databázové pošty na serveru SQL

  2. Chyba odhadu mohutnosti dílčího dotazu

  3. Jak mohu používat Psycopg2's LoggingConnection?

  4. Připojení oci_connect se nezdařilo