Php 在不使用fetch的情况下检查空字段

Php 在不使用fetch的情况下检查空字段,php,mysql,Php,Mysql,在使用PHP而不使用mysql\u fetch\u array()检查SQL中的字段是否为空时,我遇到了一些问题 我有以下代码: date_default_timezone_set('Asia/Taipei'); $remarks = $_POST['remarks']; $date_added = date ("Y-m-d"); $time_added = date ("h:i:s a"); $lname = $_SESSION['user']['last_name']; $fname = $

在使用PHP而不使用mysql\u fetch\u array()检查SQL中的字段是否为空时,我遇到了一些问题

我有以下代码:

date_default_timezone_set('Asia/Taipei');
$remarks = $_POST['remarks'];
$date_added = date ("Y-m-d");
$time_added = date ("h:i:s a");
$lname = $_SESSION['user']['last_name'];
$fname = $_SESSION['user']['first_name'];
$minitial = $_SESSION['user']['middle_initial'];
$con = mysqli_connect("localhost", "root", "", "thisdb");


if(empty(`TIME_IN_1`)) {
$query = "INSERT INTO time_logs (LAST_NAME, FIRST_NAME, MIDDLE_INITIAL, DATE, TIME_IN_1, TIME_IN_1_REMARKS) VALUES('$lname', '      $fname', '$minitial', '$date_added', '$time_added', '$remarks')";
}

else {
$query =  "UPDATE time_logs SET TIME_IN_2 = '$time_added' where LAST_NAME = '$lname' AND DATE = '$date_added'";
}

$save = mysqli_query($con, $query);
header("Location: time_in_complete.php");
我基本上想要完成的是,如果_1字段中的TIME_为空,数据将添加到那里。如果不为空,则数据将添加到\u 2中的时间。\u。

显然,这一行:

if(empty(`TIME_IN_1`))
似乎不起作用。

请尝试以下查询:

SELECT TIME_IN_1 from time_logs where LAST_NAME = '$lname' AND DATE = '$date_added'
然后:


您应该在。。。否则php不知道您的数据,您想在不获取数据的情况下检查db中的值吗?不,您必须先提取它。我需要在哪一部分使用提取?您在什么地方定义了时间?如果它在数据库中,您需要首先从数据库中检索它,因此在您实际尝试设置它之前,首先执行查询搜索。谢谢@markt的回复,但我有点困惑。由于数据库中没有插入值,无法满足LAST_NAME='$lname'和DATE='$DATE_added'条件,因此上述查询无法工作。这就是为什么您应该选中$result->num_行的原因。如果这是0,那么您的插入将被执行-或者我对这里的内容理解错误?谢谢您的回复。非常感谢,但上面的代码没有更新插入的值,而是创建了一个新记录。感谢您的回复,但我收到了一个致命错误:调用未定义的方法mysqli_result::fetch():(非常感谢您的帮助,好先生。但是更新查询似乎不起作用。它只是在时间日志表中添加了一条新记录。:(请告诉我
var\u dump($data);
我非常抱歉,但我对var\u dump()一无所知。)或者如何回答。我对PHP还是不太了解。@@我已经更新了我的帖子,通常它会向你显示$data的内容,并在评论中复制所有内容和过去
// Default to true and set this false if we find a value
$bIsEmpty = true;

// Check if any rows match
if ($result->num_rows > 0){

  // Yes a row matches, so check if we have a value
  $row = $result->fetch_object();
  if ($row->TIME_IN_1 != "")
       $bIsEmpty = false;
}

if ($bIsEmpty === true){
    // Do your insert
} else {
    // Do your update
}
$first_query = "SELECT TIME_IN_1 FROM time_logs WHERE LAST_NAME = '" . $lname . "' AND FIRST_NAME = '" . $fname . "'";
$data = mysqli_query($con, $first_query);
$num_row = mysqli_num_rows($data);

if($num_row == 0) {
$query = "INSERT INTO time_logs (LAST_NAME, FIRST_NAME, MIDDLE_INITIAL, DATE, TIME_IN_1, TIME_IN_1_REMARKS) VALUES('$lname', '      $fname', '$minitial', '$date_added', '$time_added', '$remarks')";
}

else {
$query =  "UPDATE time_logs SET TIME_IN_2 = '$time_added' where LAST_NAME = '$lname' AND DATE = '$date_added'";
}

$save = mysqli_query($con, $query);
header("Location: time_in_complete.php");