PHP为数据库插入设置了默认值

时间:2014-05-22 13:51:34

标签: php mysql

我有一个数字框<input type='number' step='any' name='number' id='number'>

我接受了这个值并在一个函数中调用它:

insertIntoDB($number)

function insertIntoDB($number = null){

  //insert into db
  "INSERT INTO 'tablename' (number) VALUES " . $number;

}

我收到此错误:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '

是否离开,如果用户将该字段留空,则会将该值输入为空?

1 个答案:

答案 0 :(得分:2)

您可以在创建表本身时设置默认值,但除此之外,您粘贴的代码缺少一些括号:

INSERT INTO `tablename` (number) VALUES (" . $number.")";

如果要在插入时使用NULL并在表中获取默认值,则可以在创建表时执行此操作:

CREATE TABLE test 
    (
    id INT NOT NULL AUTO_INCREMENT, 
    someField VARCHAR(15) NOT NULL DEFAULT 'on'
    )

现在,当您尝试向其中插入数据时,您可以执行以下操作:

insert into `tablename` (id, someField) values (null, null)

并获得一个增加了ID的行,而字符串&#39; on&#39;在someField列中。

如果要在将数据插入表格时检查空值,则可以使用以下内容确保您具有值:

$someField=(isset($number))?$number:'null';
INSERT INTO `tablename` (number) VALUES (" . $someField.")";

这是假设您已经确认$ number是数字或在发送表单时未提交。