[英]No error is thrown but INSERT statement is not working (php,mysql)
執行 INSERT 語句后沒有拋出任何錯誤並且我的數據庫表為空,請有人幫忙!
調用 INSERT 語句的服務文件
客房服務.php
<?php
header("Access-Control-Allow-Headers: *");
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Methods: GET, POST');
if(isset($_POST['hotelName']) && isset($_POST['hasTV']) &&
isset($_POST['beds']) && isset($_POST['price'])){
$roomName = $_POST['hotelName'];
$hasTV = $_POST['hasTV'];
$beds = $_POST['beds'];
$price = $_POST['price'];
echo addRoom($roomName,$hasTV,$beds,$price);
}
function addRoom($hotelName, $hasTV, $beds , $price){
global $conn;
$rarray = array();
$stmt = $conn->prepare("INSERT INTO rooms (hotelname, hastv, beds, price) VALUES (?, ?, ?, ?)");
$stmt->bind_param("sss", $hotelName, $hasTV, $beds , $price);
if($stmt->execute()){
$rarray['sucess'] = "okej";
}else{
$rarray['error'] = "Database connection error";
}
return json_encode($rarray);
}
?>
Angular 組件文件,我在其中使用通過表單傳遞的數據調用服務文件。
addroom.component.ts
public addRoom() {
const body = new HttpParams()
.set('hotelname', this.roomForm.value.hotelName)
.set('hastv', this.roomForm.value.hasTV)
.set('beds', this.roomForm.value.beds)
.set('price', this.roomForm.value.price);
console.log(body.toString());
this._api.post('roomservice.php', body.toString()).subscribe((data: any) => {
console.log(data);
// localStorage.setItem('token', JSON.parse(data['_body']).token);
this._router.navigate(['./']);
}, (error) => {
const obj = JSON.parse(error['_body']).error;
const element = <HTMLElement> document.getElementsByClassName('alert')[0];
element.style.display = 'block';
element.innerHTML = obj.split('\\r\\n').join('<br/>').split('\"').join('');
});
}
}
房間表
客戶回應
您試圖將 4 個參數傳遞給綁定函數,但您只輸入了 3 個參數。 這就是為什么它不起作用。
解決辦法是修改這兩行:
$stmt = $conn->prepare("INSERT INTO rooms (hotelname, hastv, beds, price) VALUES (?, ?, ?, ?)");
$stmt->bind_param("sss", $hotelName, $hasTV, $beds , $price);
到:
$stmt = $conn->prepare("INSERT INTO `rooms` (`hotelname`, `hastv`, `beds`, `price`) VALUES (?, ?, ?, ?)");
$stmt->bind_param("ssss", $hotelName, $hasTV, $beds , $price);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.