2015-12-05 2 views
0

Я новичок в CakePHP, и я пытаюсь использовать запрос на удаление, но ни одна строка не затрагиваемые и никаких ошибок не отображается при выполнении следующего кода:SQL удалить запрос в торт PHP не затрагивая строки

$db=ConnectionManager::getDataSource('default'); 
    $query="DELETE FROM mst_medicines WHERE mst_medicines.id=".$id; 

if($db->rawQuery($query)){ 
    return true; 
}else{ 
    return false; 
} 
+0

Выполняется ли запрос, когда вы запускаете его непосредственно на сервере MySQL. –

+0

Да, но показывает, что 0 строк затронуты, но записи не удалены. @GauravLad –

+0

И дети, как выглядит уязвимость SQL-инъекции ... Я надеюсь, что вы дезинфицировали значение '$ id'! – ndm

ответ

0

Если id имеет тип UUID (VARCHAR 36), вы должны обернуть его в кавычки:

$query="DELETE FROM mst_medicines WHERE mst_medicines.id='{$id}'"; 

Однако, обратите внимание, что это является уязвимым для атак с внедрением SQL. Если нет достаточной причины для удаления записей таким образом, всегда лучше использовать метод Model::delete() (предположим, вы используете CakePHP 2.x).

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