我有一个小的温度协议网络应用程序,可以在页面上调整度数并保存在数据库中。
它可以工作,但有时用户会出现我无法重现的零星错误!
有时数据库中有空条目,我不知道如何以及为什么。它将孔排“归零”(每天可以选择几个温度)。
例如,如果在 div 字符串“NA”中没有选择任何温度,则应将其交给数据库。这个虫子太有弹性了,我不知道还能去哪里。
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 不工作,因为它不是空的