仅根据当前条目是否为第一个($count
)运行更新查询。问题是我的更新查询没有做任何事情,但是肯定是在输入if语句。这是我的代码:
if ($count <= 0) {
echo json_encode('entered if');
$conn->query( "UPDATE tblProjects SET ProjectStatus = 2, StartDate = '$por' WHERE PROJECTNOID = '$proj'");
exit();
}else{
echo json_encode('entered else');
exit();
}
正如我之前提到的,我可以使用值将其输入到mysql编辑器中,它不会更新。我也知道$proj
和$por
的值是正确的。我正在运行echo json_encode($proj);
和echo json_encode($por);
,它们在浏览器中返回"195""2018-07-19"
。这就是为什么我认为问题出在$conn->query( "UPDATE tblProjects SET ProjectStatus = 2, StartDate = '$por' WHERE PROJECTNOID = '$proj'");
我所做的错误日志中没有记录任何内容。也不要对我已经知道的准备好的语句发表评论。如果我多次刷新表单,则会创建更多条目,并且由于某种原因会在不应该运行更新查询的情况下运行。
编辑:如果使用以下命令,这似乎可行:
if ($count <= 0) {
echo json_encode('entered if');
$qr = "UPDATE tblProjects SET ProjectStatus = 2, StartDate = '$por' WHERE PROJECTNOID = '$proj'";
$conn->query($qr);
echo json_encode($qr);
exit();
}else{
echo json_encode('entered else');
exit();
}
但是我仍然不明白为什么会这样。这两种方式不是同一回事吗?
编辑2:带有发布到此脚本的jQuery的完整脚本
完整脚本(PHP):
<?php
require "../../inc/dbinfo.inc";
ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
error_reporting(E_ALL);
ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
error_log( "################################################# UP-PROJECT-STATUS.PHP #################################################" );
$proj = $_POST['projectnum'];
$por = $_POST['por'];
//Check count of customer pos
$sql = mysqli_query($conn, "SELECT COUNT(*) AS numpo FROM tblCustomerPOs WHERE ProjectNum = '$proj'"); //On the first customer po for the project
$res = mysqli_fetch_object($sql);
$count = $res->numpo;
$count = intval($count);
if ($count <= 0) {
echo json_encode('entered if');
$conn->query( "UPDATE tblProjects SET ProjectStatus = 2, StartDate = '$por' WHERE PROJECTNOID = '$proj'");
echo json_encode($qr);
exit();
}else{
echo json_encode('entered else');
exit();
}
?>
jQuery:
$('#submit_btn').click(function(){
var projectnum = $('#projectnum').val();
var por = $('#porval').val();
var data_String;
data_String = 'projectnum='+projectnum+'&por='+por;
if (por) {
$.post('fetch/up-project-status.php',data_String,function(data){
var data = jQuery.parseJSON(data);
});
}
});