MySQL PDO ile şimdi mevcut _TIMESTAMP veya () ayarlanamaz

2 Cevap php

Ben PDO inşa ediyorum bir Web uygulaması tablolarını kullanın. Ben varsayılan değer olarak current_timestamp ayarlanmış bir zaman damgası sütun var.

Sütun değeri () yapardı, boş şimdi aynı olduğunda bir zaman damgası kullanılarak, normalde geçerli damgası atamanız gerekir. Ben 00:00:00 şimdi kullandığımız if () null damgası sütun ayarlamak ve 0000-00-00 Ama ne olursa olsun ben ne deneyin, ben bir NULL değeri olsun. Kullanılarak normal sorgular gayet iyi çalışır.

Sonra PDOStatement üzerinde bindValue ile bir foreach kullanmak, bir ilişkisel dizi olarak benim parametreleri göndermek. O zaman bu soruna kadar mükemmel çalıştı. Ben debugDumpParams denedim, ama oldukça dramatik çöker. Bu 5.2.6 ve Ubuntu henüz paketi güncellenmiş değil bilinen bir hata gibi görünüyor. Ben oldukça yetenek atlayarak ve ben debugDumpParams yardımcı olacağını bile emin değilim çünkü kaynağından php yükleme sorun önlemek istiyorum ...

2 Cevap

Lütfen sorun hazırlanan sorguda bir parametre değeri olarak bir MySQL fonksiyonu kullanmak için çalışıyoruz olabilir gibi geliyor. Sorgu hazırlama süreci ne istediğiniz değil alıntı dizeleri, gibi şeyler de dahil olmak üzere, SQL deyimi için bir edebi haline dönecek, çünkü bu başarısız olur. Yani değil parametrelerden herhangi, bu hazır hale önce NOW(), sorguda kendisi atama yapmak için bir alan ayarlama.

Öte yandan, bir boş parametre değeri ile çalışmalıdır. Ama açıkça bu sözü hata olabilir ki, değil. Yine, çözüm SQL doğrudan yapmaktır. Siz yine de diğer alanlar için parametreleri kullanabilirsiniz.

Hala bir sorun 5 yıl sonra ...

Eğer istemiyorsan başka bir çözüm, bir SQL isteği doğrudan bu gibi PHP değerini ayarlamak için yok: date("Y-m-d H:i:s", time()).