添加数据时如何向表中插入默认值?

建了一个表,建表SQL语句如下:
CREATE TABLE `myuser` (
  `uid` int(11) unsigned NOT NULL auto_increment,
  `username` varchar(250) NULL default ‘王兵‘,
  `photo` varchar(250) NULL default ‘32423342‘,
  PRIMARY KEY  (`uid`),
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

username和photo两个字段都设置了默认值,提交保存数据时的代码如下:
$Name = ($_POST[‘username‘]  == ‘‘ ) ? default : $_POST[‘username‘];
$Photo = ($_POST[‘Photo‘]  == ‘‘ ) ? default : $_POST[‘Photo‘];

如果提交时表单部分都填了数据,那插入数据则没没错,但如果没有提交任何数据,则不会完成插入数据动作,问题出在default这儿,这个写法不对(但在mysql中是对的,比如insert into a (aa,bb) values (default,default);测试过没错的,但在php程序中就不行了),怎样写才对呢?希望得到大家的指点,谢谢。用null也不行,也不能用具体的字符串来代替(只能由数据库自动将默认值插入字段)。

后将代码改为:
$Name = ($_POST[‘Name‘]  == ‘‘ ) ? NULL : $_POST[‘Name‘];

即将default改为NULL,但一样没用,当然用如下语句是有效的:
$Name = ($_POST[‘username‘]  == ‘‘ ) ?‘王兵‘ : $_POST[‘username‘];
$Photo = ($_POST[‘Photo‘]  == ‘‘ ) ?‘32423342‘: $_POST[‘Photo‘];

但我不想用具体的字符串来代替,想实现在mysql中用default来插入默认值的功能,不知如何写才正确?

时间: 2024-09-29 18:23:47

添加数据时如何向表中插入默认值?的相关文章

Android 添加数据到本地Excel表中

由于项目需要,今天学习了一下如何将程序里的数据添加到本地的Excel表中. 下面为学习笔记: 先上效果图: 首先,需要导入jxl.jar包到libs文件夹内. 然后创建Excel表,并往表里添加表头. // 创建excel表. public void createExcel(File file) { WritableSheet ws = null; try { if (!file.exists()) { // 创建表 wwb = Workbook.createWorkbook(file); //

初学oracle,sql,DML向表中插入某个值

SQL> conn scott/tigerConnected.SQL> show user;USER is "SCOTT"SQL> create table qq(name varchar2(10),salary number(8,2)); 创建一个表qq,两个段,名字和工资Table created.SQL> select * from qq;  查询表qq的信息no rows selectedSQL> insert into qq(name) valu

4.02 插入默认值

问题: 定义表时可以为某些列定义默认值,现要以默认值插入一行,而无需指定各列的值.看一下下面列出的表: create table D (id interger default 0) 要插入零值,而不像在insert语句的值列表中明确得为该行指定0值,这里明确的要求插入默认值,而不管默认值是什么. 解决方案; 所有数据库系统都支持使用default关键字显示的指定某列插入默认值,有些数据库系统还有其他的方法来解决这个问题. 下面的例子说明了使用default关键字来解决这个问题的方法: inser

解决在mysql表中删除自增id数据后,再添加数据时,id不会自增1的问题

https://blog.csdn.net/shaojunbo24/article/details/50036859 问题:mysql表中删除自增id数据后,再添加数据时,id不会紧接.比如:自增id 1 2 3 4 现在删除4,就变成了 1 2 3 这时候,如果增加一条数据,会变成 1 2 3 5 上面5不是我们想要的结果,4才是理想的id,解决方法是,在删除4之后,执行下面的sql语句: ALTER TABLE table_name AUTO_INCREMENT = 1; 原文地址:http

第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform)让用户方便的操作数据库中的数据. 什么是ADO.NET 是一组库类,System.Data. Ado.net组成 Connection:用来连接数据库 Command:用来执行SQL语句 DataReader:只读.只进的结果集,一条一条读取数据(SteamReader.XmlReader) Da

使用PreparedStatement向数据表中插入、修改、删除、获取Blob类型的数据

Blob介绍 BLOB类型的字段用于存储二进制数据 MySQL中,BLOB是个类型系列,包括:TinyBlob.Blob.MediumBlob.LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同. MySQL的四种BLOB类型 类型       大小(单位:字节) TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G Oracle LOB介绍 LOB,即Large Objects(大对象),是用来存储大量的二

mysql5.7基础 向指定数据库的指定表中插入符合要求的数据

镇场文:       学儒家经世致用,行佛家普度众生,修道家全生保真,悟易理象数通变.以科技光耀善法,成就一良心博客.______________________________________________________________________________________________________ Operating System:UbuntuKylin 16.04 LTS 64bitmysql: Ver 14.14 Distrib 5.7.17, for Linux (

Hive通过查询语句向表中插入数据过程中发现的坑

前言 最近在学习使用Hive(版本0.13.1)的过程中,发现了一些坑,它们或许是Hive提倡的比关系数据库更加自由的体现(同时引来一些问题),或许是一些bug.总而言之,这些都需要使用Hive的开发人员额外注意.本文旨在列举我发现的2个通过查询语句向表中插入数据过程中的问题,希望大家注意. 数据准备 为了验证接下来出现的问题,需要先准备两张表employees和staged_employees,并准备好测试数据.首先使用以下语句创建表employees: create table employ

建立触发器后,不能像表中插入数据,是什么原因

建立触发器后,不能像表中插入数据,是什么原 USE [cai2016]GO/****** Object:  Trigger [dbo].[trigger_yunum]    Script Date: 2017/3/29 17:30:30 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOalter trigger [dbo].[trigger_yunum] on [dbo].[newmoo_case_cgxd]   for  insert a