如何在xampp中添加varchar值的默认值

时间:2015-12-09 06:56:14

标签: mysql

enter image description here我正在尝试在Xampp中添加默认值。 我在图片中设置它,但是当我再添加1个产品时,如果我将其留空,它将为空白,我的意思是它没有默认值。 你有什么主意吗。 我的代码是:

if (isset($_POST["add"])) {
    //lấy thông tin từ các form bằng phương thức POST
    $tennsx = $_POST["tennsx"];
    $diachi = $_POST["diachi"];
    $sdt = $_POST["sdt"];
    $mieuta = $_POST["mieuta"];
    if ($tennsx == "" || $diachi == "" || $sdt == "" ) {
        echo '<h4 align=center style="color: red;">Vui lòng nhập đầy đủ thông tin</h4>';
    }else{
        //thực hiện việc lưu trữ dữ liệu vào db
        $sql = "INSERT INTO nhasx(
            tennsx,
            diachi,
            sdt,
            mieuta
            ) VALUES (
            '$tennsx',
            '$diachi',
            '$sdt',
            '$mieuta'
        )";
        // thực thi câu $sql với biến conn lấy từ file connection.php
        mysqli_query($conn,$sql);
        header('Location:manu_management.php');
    }
}

3 个答案:

答案 0 :(得分:0)

CREATE TABLE IF NOT EXISTS `xxxx` (
`username` varchar(15) NOT NULL default 'abc'
)

像这样尝试MySQL。

示例:

CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL DEFAULT 'abc',
`test` varchar(12) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
INSERT INTO `dbName`.`test` (`id` ,`test`)VALUES (NULL , '1');

答案 1 :(得分:0)

这是因为Mysql假设您要插入空值而不是默认值。如果没有要插入的值,则需要省略具有默认值的字段,请参阅以下代码:

 // simply check if variable $mieuta is empty
 // goes here
 if ( $mieuta === "" ) {
    $sql = "INSERT INTO nhasx(
        tennsx,
        diachi,
        sdt                  
        ) VALUES (
        '$tennsx',
        '$diachi',
        '$sdt'
    )";
 }
 else {
   $sql = "INSERT INTO nhasx(
        tennsx,
        diachi,
        sdt,
        mieuta
        ) VALUES (
        '$tennsx',
        '$diachi',
        '$sdt',
        '$mieuta'
    )";
 }

如果省略查询字符串中的字段名称和值,则默认值应该有效。当我们想要插入默认date created column时,这种方法会派上用场。

为了更好的方法,请使用:

$sql = "INSERT INTO nhasx(
    tennsx,
    diachi,
    sdt,
    mieuta                 
    ) VALUES (
    '$tennsx',
    '$diachi',
    '$sdt',
    '".($mieuta ==='') ? 'MY DEFAULT VALUE' : $mieuta."'
)";

答案 2 :(得分:0)

在您的代码中,您在插入新记录时设置了mieuta = $ mieuta,因此优先级将从$ mieuta插入值。请删除并重试以下代码。

if (isset($_POST["add"])) {
    //lấy thông tin từ các form bằng phương thức POST
    $tennsx = $_POST["tennsx"];
    $diachi = $_POST["diachi"];
    $sdt = $_POST["sdt"];
    $mieuta = $_POST["mieuta"];
    if ($tennsx == "" || $diachi == "" || $sdt == "" ) {
        echo '<h4 align=center style="color: red;">Vui lòng nhập đầy đủ thông tin</h4>';
    }else{
        //thực hiện việc lưu trữ dữ liệu vào db
        $sql = "INSERT INTO nhasx(
            tennsx,
            diachi,
            sdt
            ) VALUES (
            '$tennsx',
            '$diachi',
            '$sdt'
        )";
        // thực thi câu $sql với biến conn lấy từ file connection.php
        mysqli_query($conn,$sql);
        header('Location:manu_management.php');
    }
}