Neden hazırlanmış PDO deyimleri içine MySQL fonksiyonları geçmek olamaz?

0 Cevap php

Zihnimde, aşağıdaki komut dosyası çalışması gerekir:

$stmt = $db->prepare("UPDATE table SET status = ?, date_modified = ?");
$stmt->execute(array(1, 'NOW()'));

hazırlanmış deyimi içine NOW() geçerken ama hiçbir şey olmuyor. NOW() Gerçek bir tarihi (yani 2010-11-23) ile değiştirilmesi gayet güzel çalışıyor.

Ben çevrimiçi açıklama bulamadı. Herhangi bir fikir?

EDIT

Sadece daha netleştirmek ve söz konusu herhangi bir karışıklık kurtulmak, aslında ANCAK hazırlanmış deyimi içine bir değişken geçmek istiyorum, değişken mysql için beş muhtemel tarih / zaman işlevleri birine ayarlanabilir olacaktır.

örneğin

$ Var = 'ŞİMDİ ()';

$var = 'LAST_DAY(DATE_ADD(CURDATE(), INTERVAL 1 MONTH))';

$ Var = 'LAST_DAY (CURDATE ())';

... Ve böylece ...

hazırlanmış deyimi dönüşür:

$stmt->execute(array(1, $var));

Ben bu aynı NULL sonuçlar dönecektir biliyorum, ama ben basitçe sql deyimini değiştirmek eğer ben endişe duyuyorum:

UPDATE table SET status = ?, date_modified = $var

Ben enjeksiyon kendimi açıyorum?

0 Cevap