Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mysql准备语句将0传递到允许为空的十进制列中_Php_Mysql_Mysqli - Fatal编程技术网

php mysql准备语句将0传递到允许为空的十进制列中

php mysql准备语句将0传递到允许为空的十进制列中,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个带有十进制列的Mysql表,允许NULLs。如果我在PHP的prepared语句中将0作为double传递,那么我的0在Mysql列中将变为NULL 如何获取值0而不是NULL PS:我使用以下代码插入值 $query2 = "insert into TableName (Id, anotherId, date, `MinValue`, `MaxValue`, `oneMoreId`, `Comment`) values (?, ?, '2016-06

我有一个带有十进制列的Mysql表,允许
NULL
s。如果我在PHP的prepared语句中将0作为double传递,那么我的0在Mysql列中将变为NULL

如何获取值0而不是
NULL

PS:我使用以下代码插入值

$query2 = "insert into TableName
    (Id, anotherId, date,
    `MinValue`, `MaxValue`,
    `oneMoreId`, `Comment`)
  values
    (?, ?, '2016-06-23',
    ?, ?,
    ?, ?)";

$stmt = $connection->prepare($query2);
$stmt->bind_param('iiddis', $Id, $anotherId,
        $minValue, $maxValue, $oneMoreId,
        $comment);
$stmt->execute();
编辑:在@YourCommonSense的回答之后,我发现我的代码中有一个错误。在我发布的行上方,我将值从0更改为
NULL
。对不起,是我的错,伙计们

如果我在PHP的prepared语句中将0作为double传递,那么我的0在Mysql列中将变为NULL

事实并非如此

如果通过0,则它将存储为0。
但如果传递NULL,那么它将被存储为NULL

因此,您传递的是空值,而不是0。
检查您的值并在必要时转换它们

如果我在PHP的prepared语句中将0作为double传递,那么我的0在Mysql列中将变为NULL

事实并非如此

如果通过0,则它将存储为0。
但如果传递NULL,那么它将被存储为NULL

因此,您传递的是空值,而不是0。

检查您的值并在必要时强制转换它们。

您可以测试
0
值,并在执行之前用单引号封装
0
$value==0?“$value':$value
etc~它应该允许输入零而不是空值Yep,成功了。谢谢您可以测试
0
值,并在执行之前用单引号封装
0
$value==0?“$value':$value
etc~它应该允许输入零而不是空值Yep,成功了。谢谢伙计,你真厉害!在我的代码中,我之前将值从0更改为NULL。非常感谢。ps:读了你的PHP解释学后,我真的是你的粉丝:)伙计,你太棒了!在我的代码中,我之前将值从0更改为NULL。非常感谢。附言:我是你的粉丝,读了你的phpdelusions:)