2013-01-23 21 views
6

Tôi đã sau chèn truy vấnORA-01036; bất hợp pháp biến tên/số

include("ORCLconfig.php"); 

$addAclaim = oci_parse($conn, "INSERT INTO claims_accidents (ID, CLAIM_NUMBER, DATE_OF, TIME, LOCATION, PURPOSE, WEATHER, ROAD, STREET_LIGHTS, SPEED_LIMIT, SPEED_PRIOR, SPEED_AT_MOMENT, AIRBAGS, AMBULANCE, SIGNALS, OCCUPANTS, DESCRIPTION, ROAD_LOCATION, PH_DRIVING, NAME_OF_DRIVER, DRIVER_DOB, DRIVER_OCCUPATION, MEDICAL_CONDITIONS, DRIVER_CONVICTIONS, AUTHORISED, DRIVER_ADDRESS1, DRIVER_ADDRESS2, DRIVER_ADDRESS3, DRIVER_ADDRESS4, DRIVER_POSTCODE, DRIVER_TELEPHONE, MATCH, V5_NUMBER, KEY_SETS, OS_FINANCE, VEHICLE_VALUE, VEHICLE_REG, VEHICLE_MAKE, VEHICLE_MODEL, NAMED_DRIVER, FATALITIES, DRIVEABLE) VALUES (null, :claimnum, :date_of_accident, :time_of_acc, :location_of_acc, :purpose, :weather, :road, :lights, :speedLimit, :speedPrior, :speedImpact, :airbags, :ambulance, :signals, :occupants , :accdesc, :street_of_acc :ph_driving, :driverName, :DRIVER_DOB, :driverOccupation, :driverMedical, :driverConvictions, :auth, :driverAddress1, :driverAddress2, :driverAddress3, :driverAddress4, :driverPostcode, :driverTelephone, :match, :v5number, :keySets, :osf, :vehicle_value, :vehicle_reg, :vehicle_make, :vehicle_model, :named, :fatal, :driveable)"); 

    oci_bind_by_name($addAclaim, ":claimnum", $claimnum); 
    oci_bind_by_name($addAclaim, ":date_of_accident", $date_of_accident); 
    oci_bind_by_name($addAclaim, ":time_of_acc", $time_of_acc); 
    oci_bind_by_name($addAclaim, ":location_of_acc", $location_of_acc); 
    oci_bind_by_name($addAclaim, ":purpose", $purpose); 
    oci_bind_by_name($addAclaim, ":weather", $weather); 
    oci_bind_by_name($addAclaim, ":road", $road); 
    oci_bind_by_name($addAclaim, ":lights", $lights); 
    oci_bind_by_name($addAclaim, ":speedLimit", $speedLimit); 
    oci_bind_by_name($addAclaim, ":speedPrior", $speedPrior); 
    oci_bind_by_name($addAclaim, ":speedImpact", $speedImpact); 
    oci_bind_by_name($addAclaim, ":airbags", $airbags); 
    oci_bind_by_name($addAclaim, ":ambulance", $ambulance); 
    oci_bind_by_name($addAclaim, ":signals", $signals); 
    oci_bind_by_name($addAclaim, ":occupants", $occupants); 
    oci_bind_by_name($addAclaim, ":accdesc", $accdesc); 
    oci_bind_by_name($addAclaim, ":street_of_acc", $street_of_acc); 
    oci_bind_by_name($addAclaim, ":ph_driving", $ph_driving); 
    oci_bind_by_name($addAclaim, ":driverName", $driverName); 
    oci_bind_by_name($addAclaim, ":DRIVER_DOB", $DRIVER_DOB); 
    oci_bind_by_name($addAclaim, ":driverOccupation", $driverOccupation); 
    oci_bind_by_name($addAclaim, ":driverMedical", $driverMedical); 
    oci_bind_by_name($addAclaim, ":driverConvictions", $driverConvictions); 
    oci_bind_by_name($addAclaim, ":auth", $auth); 
    oci_bind_by_name($addAclaim, ":driverAddress1", $driverAddress1); 
    oci_bind_by_name($addAclaim, ":driverAddress2", $driverAddress2); 
    oci_bind_by_name($addAclaim, ":driverAddress4", $driverAddress4); 
    oci_bind_by_name($addAclaim, ":driverPostcode", $driverPostcode); 
    oci_bind_by_name($addAclaim, ":driverTelephone", $driverTelephone); 
    oci_bind_by_name($addAclaim, ":match", $match); 
    oci_bind_by_name($addAclaim, ":v5number", $v5number); 
    oci_bind_by_name($addAclaim, ":keySets", $keySets); 
    oci_bind_by_name($addAclaim, ":osf", $osf); 
    oci_bind_by_name($addAclaim, ":vehicle_value", $vehicle_value); 
    oci_bind_by_name($addAclaim, ":vehicle_reg", $vehicle_reg); 
    oci_bind_by_name($addAclaim, ":vehicle_make", $vehicle_make); 
    oci_bind_by_name($addAclaim, ":vehicle_model", $vehicle_model); 
    oci_bind_by_name($addAclaim, ":named", $named); 
    oci_bind_by_name($addAclaim, ":fatal", $fatal); 
    oci_bind_by_name($addAclaim, ":driveable", $driveable); 

    oci_execute($addAclaim, OCI_COMMIT_ON_SUCCESS); 

Mỗi lần tôi cố gắng để chạy truy vấn này tôi nhận được lỗi này

oci_bind_by_name(): ORA-01036: illegal variable name/number 

tôi đã thực hiện một chút về nghiên cứu và nó dường như nó có nghĩa là một trong các biến không nằm trong câu lệnh SQL. Đây không phải là trường hợp của tôi, tôi đã kiểm tra câu lệnh, bảng DB (đó là oracle) và tất cả các biến ràng buộc và tất cả chúng đều khớp nhau.

Số dòng trên lỗi sẽ cho biết rằng đó là biến $ driveable. Tôi đã kiểm tra và điều này đang được gửi đến trang phạt tiền.

Không chắc chắn nơi nào khác để trông như vậy sẽ giúp ích rất nhiều.

Trả lời

18

Bạn dường như đã bỏ lỡ một dấu phẩy ở đây,

:street_of_acc :ph_driving, 

Nó nên được,

:street_of_acc, :ph_driving, 
+3

LÀM THẾ NÀO TÔI MISS NHƯ THẾ NÀO !! nó hoạt động hoàn hảo ngay bây giờ mặc dù :) cảm ơn bạn. Tôi sẽ chấp nhận bạn trả lời trong 9 phút khi nó cho phép tôi :) – jampez77

+4

Chúng tôi chỉ có hai mắt và tôi chắc chắn rằng bạn đang boggled bây giờ nhìn vào mã này trên một lần nữa và một lần nữa ...: D nó xảy ra .. vui tất cả tốt. – bonCodigo

2

Ngoài @bonCodigos câu trả lời, bạn sẽ không ràng buộc :driverAddress3

+0

cũng phát hiện ra, tôi sẽ thêm một trong đó quá :) – jampez77

+0

Đó là một bắt tốt quá, nhưng lỗi không được tạo ra do * không ràng buộc * =) – bonCodigo

+1

@ jampez77: Tôi đồng ý với bonCodigo, câu trả lời của ông là một trong những quyền, vì vậy nên là một trong những chấp nhận. – beny23

0

Nếu bạn cũng có studio trực quan và bạn đang sử dụng chế độ xem chi tiết. Tôi khuyên bạn nên định cấu hình lại nguồn dữ liệu của mình. Tôi đã nhận được lỗi ORA-01036, và tất cả những gì tôi phải làm là chỉ cấu hình lại nguồn SQL của mình, và nó tạo ra nó đúng cho tôi. Đối với tôi đó là tôi đã không xử lý các giá trị ban đầu đúng cách khi tôi đang cố gắng cập nhật nguồn dữ liệu của mình.

Tôi cũng đã tham gia Oracle.

Các vấn đề liên quan