0

次のテーブルを設定しました。

CREATE TABLE `acts` (
`act_id` int(11) NOT NULL AUTO_INCREMENT,
`act_name` varchar(128) DEFAULT NULL,
`short_description` varchar(128) DEFAULT NULL,
`published` enum('1','0') DEFAULT '0',
`date_added` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`act_id`)
)

列に値のない新しいレコードを入力するpublishedと、自動的に 0 が入力されると思いますが、そうではありませんか? 何故ですか?

これは私が使用するクエリです -$publish値が 1 または何もないチェックボックスです - 問題はありますか? したがって、何も自動で 0 を追加したくない場合でも、enum を空白でオーバーライドできるように見えますか?

私はできることを知っていますif(!$publish){ $publish=0; }が、それでも奇妙な動作ですか?

$query = "insert into acts ( 
                            act_name,
                            short_description,
                            published
                            ) VALUES ( 
                            '$name', 
                            '$short', 
                            '$publish'
                            )";
4

1 に答える 1

0

insert ステートメントの値をそのままにしておくと機能します。

これはうまくいきません

insert into acts (act_name, short_description, published) 
VALUES ('$name', '$short', '$publish')

しかし、これは

insert into acts (act_name, short_description) 
VALUES ('$name', '$short')

したがって、値がない場合はpublished、別のクエリ (2 番目のクエリ) を使用します。

于 2013-10-29T11:36:21.790 に答える