如何在INT数据类型中存储空字段?

时间:2017-02-01 22:14:07

标签: php mysql

如何在INT数据类型中存储空文本?每次我提交表格时,它给我的值为0

这是我的代码:

$contact_number = $_POST['contact_num'];

$contact_number1 = !empty($contact_number) ? "'$contact_number'" : "NULL";

INSERT INTO 
pre_enrollment(pre_en_contact_num)
VALUES('$contact_number1');";

2 个答案:

答案 0 :(得分:1)

是的,你可以删除引号。引号使它成为一个字符串。

$contact_number1 = !empty($contact_number) ? $_POST['contact_num'] : NULL;

答案 1 :(得分:1)

由于您已在$contact_number1中添加了引号,因此您在查询中不需要它们。这是在数字周围放置一组额外的引号,这是一个语法错误,并在NULL周围加上引号,这使得它成为字符串而不是空文字。

但是,最好使用准备好的查询而不是字符串替换。

$contact_number = empty($_POST['contact_num']) ? null : $_POST['contact_num'];
$stmt = mysqli_prepare($conn, "INSERT INTO pre_enrollment (pre_en_contact_num) VALUES (?)");
mysqli_stmt_bind_param($stmt, "s", $contact_number);
mysqli_stmt_execute($stmt);

准备好的语句会自动将PHP null转换为MySQL NULL