2014-08-27 2 views
0

Я разрешаю пользователю создавать SQL-запросы (SELECT, UPDATE, INSERT) путем размещения формы.PHP SQL Queries проверяет, содержит ли INSERT

Код:

$sql = $_POST["sql_query"] 
mysqli_query($link, $sql); 

И я хочу сделать mysqli_num_rows если $sql использует SELECT.

Как получить, если $sql содержит SELECT?

+0

ВЫБРАТЬ, похоже, для меня ВЕРСИЯ или ОБНОВЛЕНИЕ. Неужели это связано с вашей логикой? – Strawberry

+0

Разрешить пользователям создавать свои собственные запросы? – Debflav

+0

Прошу прощения, я виноват !!! –

ответ

0
$sql = ''; 
$rows = 0; 
$result = mysqli_query($link, $sql); 

if(strtoupper(substr($sql,0,6)) == 'SELECT') 
    $rows = mysqli_num_rows($result); 

SELECT всегда будет первым словом в SQL, так что просто сравнить первые шесть символов. Обязательно игнорируйте регистр (я делаю это, используя буквы), или вы можете пропустить некоторые запросы, но это должно работать как быстрое и простое решение.

+0

Большое спасибо. +1 для первых символов substr. –

0
$sql = $_POST["sql_query"]; 
if (strpos(strtolower($sql),'insert') !== false) 
{ 
    mysql_query($sql,$con); 
} 
else if (strpos(strtolower($sql),'select') !== false) 
{ 
    $row= mysql_num_rows(mysql_query($sql,$con)); 
} 

[EDIT I dont know mysqli so i may not know the actual syntaxes. So i am giving w.r.t mysql] 

Упование вы можете отрегулировать его согласно вашему удобству. Его логика требует.

0
if(strstr($sql,'SELECT') || strstr($sql,'select')) { 
    //your code here 
    $query = mysqli_query($link, $sql); 
    $count = mysqli_num_rows($query); 
    echo $count; 
} 
+3

Благодарим вас за ответ. При отправке кода, пожалуйста, также включайте краткое объяснение, чтобы OP мог понять код. –

+0

ok ... спасибо за ваш ответ. –

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