2013-01-29 11 views
5

Co to znaczy ":" przed zmienną?Co oznacza dwukropek przed literałem w instrukcji SQL?

Na przykład :userId w tym kodzie:

public function removeUser($userId) 
{ 
$command = Yii::app()->db->createCommand(); 
$command->delete(
'tbl_project_user_assignment', 
'user_id=:userId AND project_id=:projectId', 
array(':userId'=>$userId,':projectId'=>$this->id)); 
} 

To jest PHP, MySQL kod w Yii ramy.

+2

Wskazuje zmienną wiążącą dla przygotowanych wyciągów. – datasage

+0

Dzięki. Twoja odpowiedź pomogła. –

Odpowiedz

6

Dwukropek jest pospolitym znakiem wskazującym symbol zastępczy dla wartości zmiennej w instrukcji SQL. W tym przypadku zastępcze są zastępowane wartością userId i project_id w czasie wykonywania. Jest to doskonałe rozwiązanie do unikania luk SQL injection.

+0

Dziękuję. Jest to bardzo przydatne. –

0

Jak wspomina Thaidiotguy, jest to postać powszechnie używana w przygotowywanych oświadczeniach, zwłaszcza z ChNP. W PDO dwukropek mówi, że poniżej jest nazwanym parametrem.

3

: userId jest symbolem zastępczym

Według dokumentacji Yii dla SQL statement:

Dla przygotowanym oświadczeniu użyciu nazwanych zastępcze, będzie to nazwa parametr formularza : imię .

+0

To jest pomocne. Dzięki –