2014-05-07 3 views
-2

У меня есть запрос вне моего блока if-else. Можно ли изменить переменную внутри оператора IF? Вот пример того, что я получил до сих пор.Изменение переменной PHP, используемой в запросе внутри оператора If

//connection details 

$docfk=""; 
$qry="SELECT * FROM DOC_DETAILS WHERE DOC_FK='$docfk'"; 

if(a==1){ 
$docfk='2'; 
$eqry=mysqli_query($conn,$qry); 
} 
if(a==2){ 
$docfk='3'; 
$eqry=mysqli_query($conn,$qry); 
... 

Моя проблема в том, $docfk, кажется, не несут ценности быть возложены на него внутри if заявление.

ответ

3

Вы должны будете сделать это следующим образом:

//connection details 

$docfk=""; 

if($a==1){ 
    $docfk='2'; 
} 
if($a==2){ 
    $docfk='3'; 
} 

$qry="SELECT * FROM DOC_DETAILS WHERE DOC_FK='$docfk'"; 
$eqry=mysqli_query($conn,$qry); 

EDITED, чтобы соответствовать комментарий Фред -ii- который очень верно: Переменные начинается с $ в PHP

комментарий ниже очень верно, вы должны использовать подготовленные заявления, из того, что я вижу, что ваш код безопасен, но было бы очень полезно использовать подготовленные заявления, см. http://www.php.net/manual/en/mysqli.prepare.php для более подробной информации.

+1

Нет, * не делайте это так. Вы просто просите о неприятностях. Вы всегда должны использовать подготовленные инструкции при работе с материалами базы данных. –

+0

Причина, по которой я хочу это сделать, есть у меня инструкция 12 if, мне нужно выполнить тот же запрос, за исключением того, что $ docfk имеет другое значение. Большое спасибо. –

+0

Я попробую 1-е решение. Большое спасибо. –

0

вы должны изменить a на $a и проверить, как это if($a==1) ok ..?

+0

жаль об этом. Но даже если я изменю a на $ a, все равно не получаю правильный результат. TY ..: D –

+0

где вы инициализируете $ a? –

+0

за пределами операторов if. –

Смежные вопросы