所以我正在创建一个出租车预订应用程序(模拟项目),并且正在实现一个搜索栏,用于通过sql搜索数据库。 我已经完成了所有工作,但现在我想在分配出租车司机之前检查表格中的代码是否有效。
$sql = "UPDATE cabBookings SET _status = 'assigned' WHERE _booking_code = '$code'";
$sqlTwo = "SELECT * FROM cabBookings WHERE _booking_code = '$code'";
if($result = @mysqli_query($connection, $sqlTwo)){
if($result->fetchColumn() > 0){
if (@mysqli_query($connection, $sql)) {
echo "<p style = 'padding: 10px; background-color: #8ae57b; border: 1px solid black; max-width: 400px;'>Great! Thankyou
for taking up your time. You have been assigned the duty of picking up this passenger :-)</p>
<button style = 'margin-top: 10px;' type = 'button' onClick = 'location.reload()'>Reload Page</button>";
} else {
echo "Error: " . $sql . "<br>" . $connection->error;
}
}else{
echo "<p style = 'padding: 10px; background-color: #ed6c63; border: 1px solid black; max-width: 400px;'>Sorry, the code
you have entered is not a current booking</p>";
}
}
显然代码不起作用,我只是想知道我做错了什么
答案 0 :(得分:1)
$result->fetchColumn()
。但在这里我可以看到你使用简单的mysqli功能。所以fetchColumn
功能不起作用。
而不是$result->fetchColumn()
使用$result->num_rows
答案 1 :(得分:0)
您在数据库函数名称之前使用@
,这将抑制它将生成的任何错误消息!详情:http://php.net/manual/en/language.operators.errorcontrol.php
尝试执行错误捕获。也许抓住错误并写入日志文件。通过这种方式,您将能够找出代码中发生的问题!
您可以查看error_log
文件以查看错误
还有一件事,我建议使用反引号转义查询中的表字段名称和表名。示例:
$sql = "UPDATE `cabBookings` SET `_status` = 'assigned' WHERE `_booking_code` = '$code'";