0
我試圖做一個簡單的汽車租賃系統中的一個表:汽車如何檢索使用PHP的oracle存儲過程中的錯誤?
CREATE TABLE "WILSON"."CAR"
( "CAR_ID" VARCHAR2(20 BYTE),
"CAR_PLATE" VARCHAR2(7 BYTE) NOT NULL ENABLE,
"CAR_MODEL" VARCHAR2(30 BYTE) NOT NULL ENABLE,
"CAR_COLOR" VARCHAR2(30 BYTE) NOT NULL ENABLE,
"CAR_STATUS" VARCHAR2(30 BYTE) NOT NULL ENABLE,
"CAR_CATEGORY" VARCHAR2(15 BYTE) NOT NULL ENABLE,
CONSTRAINT "CAR_STATUS_CHK" CHECK (CAR_STATUS IN ('AVAILABLE','NOT AVAILABLE','MAINTENANCE')) ENABLE,
PRIMARY KEY ("CAR_ID"),
CONSTRAINT "CAR_UNIQUE" UNIQUE ("CAR_PLATE", "CAR_MODEL", "CAR_COLOR")
);
與存儲過程中插入一個新的車:
create or replace procedure insert_car_proc(plateno varchar2, car_model varchar2, color varchar2, cate_id varchar2)
is
begin
insert into car(car_plate, car_model, car_color, car_category) values (plateno, car_model, color, cate_id);
end;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$plateno = $_POST['platenoInput'];
$model = $_POST['modelInput'];
$color = $_POST['colorInput'];
$category = $_POST['category'];
// var_dump($plateno, $model, $color, $category);
$stmt = $conn->prepare('begin insert_car_proc(?,?,?,?); end;');
try{
$stmt->bindParam(1, $plateno);
$stmt->bindParam(2, $model);
$stmt->bindParam(3, $color);
$stmt->bindParam(4, $category);
$stmt->execute();
echo 'success';
}catch(Exception $e){
echo $e->getMessage();
}
}
它能夠插入新車,但因爲我有3列(car_color,car_plate,car_model)的約束我想檢索錯誤使用PHP向用戶顯示'同一輛車存在。請再次檢查。'我應該怎麼做?