0

在我的页面上,我有几个文本框,其中两个,名字和姓氏,不是必需的。如果在这些字段中的一个或两个中没有输入任何内容,我需要将 NULL 插入为空,而不是 NULL 作为字符串值。目前它正在将它们作为字符串值输入。我需要做什么才能插入 NULL 值而不是字符串?

PHP 代码

<?php
// SQL connection and other variables...

if (!empty($_POST['firstname'])) {
    $firstname = $_POST['firstname'];
} else {
    $firstname = 'NULL';
}
if (!empty($_POST['lastname'])) {
    $lastname = $_POST['lastname'];
} else {
    $lastname = 'NULL';
}

$sp = "exec sp_test_proc '$street1', '$street2', '$firstname', '$lastname'";
$res = odbc_exec($conn, $sp);
?>

如果我为任何一个参数传入 NULL 而不是变量,它就可以正常工作。不确定是什么导致了使用变量的问题。

4

2 回答 2

3

NULL而不是'NULL'

您正在使用引号将其变为字符串。

于 2013-06-17T19:38:47.403 回答
1

您需要将 NULL 作为不带引号的字符串传递。这是因为您正在构建纯 SQL。因此,请确保该声明是有效的。

对于参数化查询,它应该是 NULL 值而不是 NULL 字符串。

于 2013-06-17T19:40:23.163 回答