我有一个数字框<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 ' '
是否离开,如果用户将该字段留空,则会将该值输入为空?
答案 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是数字或在发送表单时未提交。