Postgresql: hazırlanmış tablolar ile 'null' değeri kullanarak ekleme ve güncelleme satırlar

1 Cevap php

bazen ben tabloya bazı boş değerler eklemek, ya da NULL değerini ayarlama bunları güncellemeniz gerekir.

Ben bu yapılabilir cant postgresql belgelerinde yerde okudum, ama tricket varsayılan değere sahip olabilir:

pg_query("INSERT INTO my_table (col_a, col_b) VALUES ('whatever', default)

ps: ben bu örnekte ben aynı sonucu ile sahip olacak biliyorum

pg_query("INSERT INTO my_table (col_a) VALUES ('whatever')

Ama sorunlar hazırlanmış deyimleri witht gelir:

pg_prepare($pgconn, 'insert_null_val', "INSERT INTO my_table (col_a, col_b) VALUES ($1, default)");
pg_exec($pgconn, 'insert_null_val', array('whatever'));
//this works, but
pg_prepare($pgconn, 'insert_null_val', "INSERT INTO my_table (col_a, col_b) VALUES ($1, $2)");
pg_exec($pgconn, 'insert_null_val', array('whatever', 'NULL'));
//insert into the table the string 'NULL'.
//instead using array('whatever', '') it assume the col_b as empty value, not NULL.

Aynı problem güncelleştirme sorgusu ile geliyor.

Ben orada pgmyadmin yapmak (ya da can gibi görünebilir) olabilir becose bir çözümdür, ve (i zaten hazır deyimleri kullanmaz sanmıyorum) i php yazılır düşünüyorum

Benim tablolarda null değerleri ile paly gerekir neden sen merak varsa, bana (belki boş değere sonra bir yol daha iyi olduğu) bir örnek atmak izin: Bu bir boş olabilir: i kullanıcı tablo var ve e-posta col varsayalım , ancak benzersiz bir dizin olduğunu .. 2 boş e-posta bulunmaktadır equal ve 2 NULL değerleri eşit değildir ve bir arada iken, benzersiz kısıtlamayı ihlal.

1 Cevap

Kullanın php 's NULL değişmezi parametre olarak:

pg_prepare($pgconn, 'insert_null_val', "INSERT INTO my_table (col_a, col_b) VALUES ($1, $2)");
pg_exec($pgconn, 'insert_null_val', array('whatever', NULL));