2016-04-21 9 views
0
$test="test's"; 
$contact='1234567890'; 
$this->Page->updateAll(
     array('Page.order' => 0,"Page.name" => "'$test'","Page.contact" => "'$contact'"), 
     array('Page.type' => 'PROMOTED') 
    ); 

Выше запроса с конфликтом одной кавычки. Есть ли другой способ написать запрос на обновление. Я использую cakephp 2xКак написать запрос на обновление в cakephp

+0

почему Однократное процитировать переменной PHP? –

+0

$ this-> Recipe-> id = 2; $ this-> Recipe-> save ($ this-> request-> data); , Я использовал этот метод, но его вставка не обновлялась. –

+1

неверно, как только вы установите идентификатор, он не вставляет его обновления. –

ответ

0

ПРИМЕЧАНИЕ: Должны обратные символы с обратной косой чертой, имеющие другое значение в php, если вы хотите, чтобы их признавали строковыми кахарами. например (потребности протестировать в быть тест \ 's)

http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-updateall-array-fields-mixed-conditions

попробовать:

$db = $this->getDataSource(); 
$test = $db->value('test\'s'); 
$contact = $db->value('1234567890'); 
$this->Page->updateAll(
     array('Page.order' => 0,"Page.name" => $test,"Page.contact" =>  $contact), 
    array('Page.type' => 'PROMOTED') 
); 
+0

Присмотритесь к документам, которые вы 'связанный, CakePHP будет _not_ автоматически указывать значения в вызове 'updateAll()'! – ndm

+0

Да, извините, ваши мертвые правые. Но даже в документации они не буквально цитируют переменную. см., если мой обновленный ответ - любая помощь. –