2014-12-28 3 views
0

Ive изучал «недостающее руководство» на brett m. Это устарело. Я заменил mysql func. Это не проблема. Я запускаю оператор if, чтобы соответствовать команде sql, используя preg match. До того, как я установил var в true. Если preg match возвращает совпадение, var затем изменяется на false. Если не выполняется. Скрипт выполняется для mysqli_fetch. Пожалуйста помоги.если preg_match не изменяет var на false

$return_rows=true; 
If(preg_match("/^\s*(CREATE|INSERT|UPDATE|DELETE|DROP)/i", $query_text)) 
{ 
    $return_rows=false; 
} 
If($return_rows) 
{ 
    While($row=mysqli_fetch_row($result)){ echo $row[0]; } 
} 
else{ echo "query processed"; } 
mysqli_close($u); 

ответ

-1

Вместо использования if только обновить $return_rows в одном из случаев, присвоить результат совпадения регулярных выражений непосредственно:

$return_rows = !preg_match("/^\s*(CREATE|INSERT|UPDATE|DELETE|DROP)/i", $query_text); 

! здесь является отрицанием. Вместо этого вы можете использовать более подходящее имя переменной.

Затем используйте if чек для получения строк, или напечатать сообщение еще:

if ($return_rows) { 
    // fetch rows 
} 
else { 
    // no fetching 
} 

рассмотреть Кроме того, используя PDO вместо MySQLi. Это не так круто с привязкой параметров.

+0

Назначения возврата строк PREG матча по-прежнему продолжает выполнять для извлечения строки. Я не могу пойти на выбор. Этот сценарий - упражнение. Я должен выяснить, что такое матч. Im runnig wamp sever/win7x64. Это может быть ошибка? –

0

Просто закройте запрос SELECT. причина SELECT - основной запрос запроса данных из базы данных.

if(strtolower(substr(trim($query_str)) , 0, 6) == "select"){ 
    // SELECT query is being requested 
    while($row=mysqli_fetch_row($result)){ echo $row[0]; } 

else{ echo "query processed"; } 

mysqli_close($u); 

Теперь вы можете продолжать свои работы без каких-либо проблем

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