将php变量另存为SQL的null

时间:2018-10-17 07:45:59

标签: php mysql html5 mysqli

我制作了一个程序来读取另一页上的3个输入,即ID,code1和code2。

一个是易于搜索的代码,另外两个是将用于求和,相减,相乘然后将其全部保存到数据库中的变量

我已将其连接到此php代码:

if (isset($_POST["ID"]))
 {
    $id=($_POST["ID"]);
   $val1=($_POST["code1"]);
   $val2=($_POST["code2"]);

if ($val2 == 0){
    $sum = $val1 + $val2;
    $res = $val1 - $val2;
    $mul = $val1 * $val2;
    $div = NULL;
}else{
    $sum = $val1 + $val2;
    $res = $val1 - $val2;
    $mul = $val1 * $val2;
    $div = $val1 / $val2;
}

 $cnn=mysqli_connect("localhost","root","CC2CRO","ejercicios");
 if ($cnn) {
echo ("<SCRIPT LANGUAGE='JavaScript'>window.alert('CONEXION EXITOSA  
 !!!!')</SCRIPT>");         
    $sqlnr = mysqli_query($cnn, "INSERT INTO calculadora (Id, Valor1, 
 Valor2, Suma, Resta, Multiplicacion, Division) VALUES ('$id', '$val1', 
 '$val2', '$sum', '$res', '$mul', '$div')");

它已连接到MySQL数据库,到目前为止,它已经起作用,例如,我把OP45、12、3 当我看到数据库另存为OP45 12 3 15 9 36 4时 我的问题是,当我为$ val2使用0时,我想将其保存为null,因为你不能将其除以0,但是当我运行它时,它将整个行留空,仅当$ val2为0时, $ val2为1或更大,它将填满整个行。

在我的数据库中,Id为varchar,其余为十进制(6,2),Id为PK且不为Null,Valor1和Valor2也不为空。

在上面的代码块下面,我还有另一个

 if ($sqlnr)
        echo ("<SCRIPT LANGUAGE='JavaScript'>window.alert('REGISTRO ALMACENADO CORRECTAMENTE !!!!')</SCRIPT>");
    else{
        echo ("<SCRIPT LANGUAGE='JavaScript'>window.alert('EL REGISTRO NO PUDO SER GUARDADO !!!!')</SCRIPT>");
    }

可以看到第一个消息是否已保存在数据库中,而第二个消息则是未保存,因此,当val2为0时,它总是向我发送第二条消息。

1 个答案:

答案 0 :(得分:0)

您应该更改

$div = NULL;  to  $div = 'NULL';

然后在SQL字符串( '$div' to $div )中删除'$ div'中的单引号

$sqlnr = mysqli_query($cnn, "INSERT INTO calculadora (Id, Valor1, 
        Valor2, Suma, Resta, Multiplicacion, Division) VALUES ('$id', '$val1', 
       '$val2', '$sum', '$res', '$mul', $div)");