mysql sorun takın

4 Cevap php

I have a table with 2 fields (name, confirm). confirm is of type tinyint because I want to put in 0 or 1

Şimdi confirm 1 'koymak istiyorum; Bu açıklama doğru mudur?

if($row['confirm']==0)
{
    $query = "INSERT INTO opt (confirmed) values('0')";
    echo 'The user selected options has confirmed';
}

4 Cevap

Ayrıca ilişkili 'name' alan null olmak istiyorsanız yazdım ifadesi yalnızca doğrudur.

Aslında her iki alanları doldurulur olmak istiyorsanız yapmanız gereken:

INSERT INTO opt (name, confirmed) VALUES (?, ?)

ve daha sonra kullanıcı tarafından sağlanan değerlere ? parametreleri bağlamak için mysqli veya fonksiyonların PDO ailesini kullanacaktır. Bu, SQL injection saldırılarına karşı korumalı veritabanı için gereklidir.

Ben de alanların başka bir çift eklemeyi düşünün:

  • Eşsiz id alan (MySQL en auto_increment bunun için iyi) belirli kayıtları silmek ve / veya değiştirebilirsiniz, böylece
  • A timestamp alanı böylece bu veri eklendiğinde kaydını (cinas amaçlanan değil) var

Gerçekten bir güncelleme yapmak istiyorum sesler:

GÜNCELLEME opt SET = 1 teyit WHERE name = '$ satır [adı]'

Değil mi?

'Teyit' sayısal bir sütundur, o zaman 1 tırnak koymak gerekir.

INSERT INTO OPT (confirmed) VALUES (1)

Önceki posterleri her şey + dedi: siz sadece iki olası değerler varsa alan o bir ENUM yapmak "doğruladı".