gpt4 book ai didi

php - Mysql新行没有插入默认值

转载 作者:行者123 更新时间:2023-11-29 06:10:44 25 4
gpt4 key购买 nike

ALTER TABLE  `songs`
CHANGE `artist_name` `artist_name` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'N/A'

^ 这就是我的表,artist_name 的默认值是“N/A”。我正在使用表单来提交数据。但是,当我通过表单提交数据时,该行不包含“N/A”并且该值为空。有谁知道这是怎么回事吗?

$video_id=$_POST['video_id'];
$song_name=$_POST['song_name'];
$artist_name=$_POST['artist_name'];
$movie_name=$_POST['movie_name'];
$language=$_POST['language'];
$oldornew=$_POST['oldornew'];

//inserting data order
$order = "INSERT INTO dhb_dhb.songs
(video_id, song_name,artist_name, movie_name,language,oldornew)
VALUES
('$video_id', '$song_name','$artist_name', '$movie_name', '$language', '$oldornew')";

最佳答案

如果特定的 $_POST 键为空,则必须取消设置该键,因此将插入 NULL,然后自动为其分配默认值。现在您只需插入一个空白字符串,该字符串不会转换为默认列值,因为它不是 NULL

编辑最简单的方法是使用关联数组,仅包含非空的键/值:

$data = array('video_id' => $video_id);
foreach(array('artist_name', 'song_name') as $key)
if(!empty($_POST[$key])){
$data[$key] = mysql_real_escape_string($key);
}
}

$columns = "`". implode("`, `", array_keys($data)) ."`";
$values = "'". implode("', '", array_values($data)) ."'";
$query = "INSERT INTO table ({$columns}) VALUES ({$values})";

这尚未经过测试,应在插入之前测试值(例如 $song_id 真的是整数吗?),但这是一般想法。

关于php - Mysql新行没有插入默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9299349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com