Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak korzystać z przygotowanych zestawień w CodeIgniter?

CodeIgniter nie obsługuje przygotowanych oświadczeń. Jeśli spojrzysz na kod źródłowy klasy Database CI, zobaczysz, że rozwiązywają one powiązania po prostu zastępując znaki zapytania danymi z przekazanej tablicy:

Obsługują one tylko powiązanie zapytań z nienazwanymi symbolami zastępczymi. Zobacz http://ellislab.com/codeigniter/user-guide/database/ zapytania.html

Powiązania zapytań

Wiązania umożliwiają uproszczenie składni zapytań, umożliwiając systemowi składanie zapytań za Ciebie. Rozważ następujący przykład:

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

Znaki zapytania w zapytaniu są automatycznie zastępowane wartościami w tablicy w drugim parametrze funkcji zapytania.

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

Mimo że CI nie obsługuje przygotowanych instrukcji, obsługuje powiązania zapytań. Przy przygotowanych instrukcjach musisz wywołać pewien rodzaj funkcji Prepare(), a następnie funkcję execute(). W przypadku powiązań zapytań wystarczy wywołać tylko jedną funkcję, która w zasadzie robi to samo. Z tego powodu wiązania zapytań podobają mi się bardziej niż gotowe instrukcje.

Na marginesie, zmiana ? do :foo zmienia się jedynie z nienazwanych na nazwane powiązania (których CI najwyraźniej również nie obsługuje). Tylko dlatego, że używasz jednego lub nie, oznacza to, że przygotowujesz oświadczenia.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL #1140 - Mieszanie kolumn GROUP

  2. PDO fetchAll grupuj pary klucz-wartość do tablicy asocjacyjnej

  3. Jak uzyskać rok i miesiąc z daty w MySQL?

  4. MySQL InnoDB nie zwalnia miejsca na dysku po usunięciu wierszy danych z tabeli

  5. Jak dodać czas do wartości daty i godziny w MySQL?