Bir form yardımıyla bir MySQL Veritabanı Into İçerik Girme

5 Cevap php

Benim veritabanına içerik sunar ama yerine ben oldukça Textfield kullanmak istiyorum tarihini seçmek için aşağı açılır bir menü kullanarak daha karar bir form yaratmaya çalışıyoruz. Benim tablo oluşturma dosyası yapmak gerekir ne gibi değişiklikler merak ediyordum.

<?php mysql_connect ('localhost', 'root', 'root') ;
mysql_select_db ('tmlblog');

$sql = "CREATE TABLE php_blog (
  id int(20) NOT NULL auto_increment,
  timestamp int(20) NOT NULL,
  title varchar(255) NOT NULL,
  entry longtext NOT NULL,
  PRIMARY KEY  (id)
)";

$result = mysql_query($sql) or print ("Can't create the table 'php_blog' in the database.<br />" . $sql . "<br />" . mysql_error());

mysql_close();
if ($result != false) {
    echo "Table 'php_blog' was successfully created.";
}
?>

Ben bir textfield aracılığıyla girmek için düzenlemek gerekir damgası bulunuyor. Başlık ve Giriş anda zaten bu yöntemle girilir ediliyor.

Whenever I use my form to update the database I get the following error message:

Can't insert into table php_blog. INSERT INTO php_blog (time_stamp,title,entry,) VALUES ('1270140960','kjkkj','jkjkjk') You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES ('1270140960','kjkkj','jkjkjk')' at line 1

5 Cevap

TIMESTAMP ayrılmış bir MySQL kelimedir. Eğer bir alan adı olarak kullanmak isterseniz etrafında backticks yerleştirmek gerekir. Ancak, ben bunu değiştirmenizi öneririz.

Bu aslında bunun içinde saklıyorsanız verilerin tür olarak da bir TARIH veya DATETIME alanı yapmak gerekir.

Eğer komut bir kısmının herhangi bir değişiklik yapmak zorunda değildir. Ne gerekir kullanıcıların şeklinde bir metin girişi ile giriş tarih almak ve bir zaman damgası (eğer onun geçerli biçimi) dönüştürmek için.

Edit: tabii ki gerçekten damgası dize veya tarih formatında bir tarih olmasını istediğiniz sürece o zaman varchar int değiştirmek olurdu (9) veya kullanım tarihi veya (xxxx-xx-xx veya hangi formatta olursa olsun tercih içeren) datetime

Muhtemelen bunun için MySQL standart DATETIME türünü kullanmanız gerekir. Bir tarih için TextField içeriğini almak ve MySQL DATETIME nesne arıyor ne eşleşen bir biçime almak için PHP'nin strtotime ve date fonksiyonlar onu beslemek.

Sen bir şey değiştirmek zorunda olmamalıdır. Sadece doğru kullanıcı girişi ayrıştırmak ve mktime ile bir damgası oluşturmak emin olun.

Eğer time_stamp alanında bir satır sen kendi tanımını değiştirebilir sokulmaktadır her zaman içine geçerli zaman damgası girmek istiyorsanız:

time_stamp  TIMESTAMP NOIT NULL DEFAULT CURRENT_TIMESTAMP

bu şekilde time_stamp alan için açık bir ekleme yapmak gerekmez.

EDIT:

Eğer zaman_damgası alanın üstünde def kullanın ve insert yaparken time_stamp değerini içerebilir form alanını düzenlemek istiyorsanız. Bu formatta olmalıdır:

'YYYY-MM-DD HH:MM:SS'

Not: timestamp MySQL sözcük saklıdır. I time_stamp bunu değiştirildi ettik.