【问题标题】:Save php variable as null for sql将 php 变量保存为 sql 的 null
【发布时间】:2018-10-17 07:45:59
【问题描述】:

我编写了一个程序来读取另一个页面上的 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 当我看到我的数据库保存为OP45123159364 我的问题是,当我将 0 用于 $val2 时,我想将其保存为 null,因为您不能除以 0,但是当我运行它时,它会使整行为空,只有当 $val2 为 0 时才会这样做,如果$val2 为 1 或更多,它会填满整行。

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

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

 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 时,它总是给我第二条消息。

【问题讨论】:

  • 您是否考虑过在 MySQL 中使用插入触发器来检查是否为零并更新为 null?
  • 在划分之前你应该检查if$val20然后$div=0就像if($val2==0){$div=0;}
  • “我想将它保存为 null,因为你不能除以 0” - 这有什么帮助? 5 / NULL 在 PHP 中仍然会收到“除以零”警告。
  • 我试图把 $div=0;当我这样做时,它确实将它作为 0 放在数据库中,但我希望它在 $val2 为 0 时保持为 NULL,我尝试了其他方法,例如 $div=null; $div=NULL; $div="(NULL)"; $div="NULL";其他人喜欢,但它不保存
  • 该列/表是如何定义的? Division 是否允许 NULL 值?你检查过 mysqli_error 吗?

标签: php mysql html mysqli


【解决方案1】:

你应该改变

$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)");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2013-05-09
    • 2013-09-08
    • 1970-01-01
    相关资源
    最近更新 更多