数据库$ _GET中的零星不需要的空条目

时间:2012-06-26 15:48:10

标签: php sql ajax sqlite null

我有一个温度协议网络应用程序,其中度数在页面上调整并保存在数据库中。

它可以正常工作,但有时会发生用户无法重现的零星错误!

有时数据库中有空条目,我不知道如何以及为什么。它使孔排“空”(每天可选择几个温度)。

如果是在div字符串中没有选择temp“NA”应该传递给db。这个bug很有弹性,我不知道还有什么可以转向。

Ajax通过单击箭头

来增加值
$(".arrow_up").die('click');        
$(".arrow_up").live('click',function() {
    var value = $("#temp_"+this.id).html();
    if (value=="NA") {value=$("#istemp_"+this.id).html()}
            var newValue = parseInt(value)+ 1;

将值转移到服务器

$(document).ready(function() {
$('#save').die('click');                       
$("#save").live('click',function() {
    var tempA=$("#temp_itemA").html();
    var tempB=$("#temp_itemB").html();          

PHP必须存储

我看它是不是空的,也不是字符串null被移交了。最后一个抛出错误。

<?php
    if((!isset($_GET['tempA'])) || (!isset($_GET['tempB'])) || ($_GET['tempA']!='null')
      {
        echo "values are missing";
      }
    else 
    {
    error_reporting(E_ALL);
    try {
        $dbh = new PDO('sqlite:/var/www/xxx.sqlite');
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  

    $date=date("Y-m-d",time());
    $sql = "SELECT * FROM tableTemp WHERE date='".$date."'";    
    $result = $dbh->query($sql);
    foreach($result as $row) {
        $id = $row['id'];
    }

    if (!empty($id)) {
        $sql = "UPDATE tableTemp SET tempA='".$_GET['tempA']."',tempB='".$_GET['tempB']"'";
        $result = $dbh->query($sql);
    }

    else {
        $sql = "INSERT INTO tableTemp ('tempA','tempB')";
        $result = $dbh->query($sql)
?>

我的意思是,这很简单。我只能想象传输错误可能与WIFI和数据包丢失有关。

如何停止将这些讨厌的空字符串插入(丢弃)到数据库并抛出错误,以便用户必须再次尝试?我的!isset不起作用,因为它不是空的

1 个答案:

答案 0 :(得分:0)

请注意,这可能是明显的

但是你能不能规定数据库中的列需要一个非null的值然后捕获插入错误

你看到了这个答案吗?

https://stackoverflow.com/a/2103256/1479565