2014-07-23 1 views
1

웹 서비스를 통해 내 Android 앱과 내 SQL Server 데이터베이스를 연결하는 데 ODBC를 사용합니다. PHP 스크립트를 사용하여 데이터를 가져 오려고합니다. SQL Server 데이터베이스의 모든 데이터를 원활하게 실행합니다. 하지만 'WHERE'절을 사용하여 일부 데이터를 가져 오려고 할 때 PHP 스크립트에서 오류가 발생하여 쿼리에 매개 변수를 추가하려고합니다. 여기 내 PHP 스크립트입니다 :ODBC는 매개 변수가있는 데이터를 필터링 할 수 없습니다.

<?php 
$dsn="myDSN"; 
$username="myUSername"; 
$password="myPassword"; 

$barcode = $_GET['barcode']; 

$koneksi = odbc_connect($dsn,$username,$password); 

$sql = "select Barcode_ID, WO, ProductCategory, SubProductName, OrderType from T_MAIN 
    where Barcode_ID = $barcode"; 

$respon = array(); 

$tbl_main = odbc_exec($koneksi, $sql); 

if (odbc_num_rows($tbl_main) > 0) { 
    $respon["data_main"] = array(); 

    while ($row = odbc_fetch_array($tbl_main)) { 
     $data_main = array(); 
     $data_main["barcodeID"] = $row["Barcode_ID"]; 
     $data_main["wo"] = $row["WO"]; 
     $data_main["product"] = $row["ProductCategory"]; 
     $data_main["subProduct"] = $row["SubProductName"]; 
     $data_main["ordertype"] = $row["OrderType"]; 

     array_push($respon["data_main"], $data_main); 
    } 
    $respon["sukses"] = 1; 
    $respon["pesan"] = "Success!"; 

    echo json_encode($respon); 
} else { 
    $respon["gagal"] = 0; 
    $respon["pesan"] = "Failed!"; 

    echo json_encode($respon); 
} 
odbc_close($koneksi); 
?> 

내 브라우저에서 실행하고 나는이 오류를 얻을 :

Warning: odbc_exec(): SQL error: [Microsoft][ODBC SQL Server Driver]COUNT field incorrect or syntax error, SQL state 07001 in SQLExecDirect in C:\xampp\htdocs\myscripts\get_data_main.php on line 15 

Warning: odbc_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\myscript\get_data_main.php on line 19 {"gagal":0,"pesan":"Gagal Mengakses Database!"} 

누군가가 나에게이 문제를 해결하는 데 도움을 줄 수 있습니까? 제안 해 주셔서 감사합니다.

+0

barcode_ID = '$ barcode'' – gmsantos

+0

Bacode_ID는 정수형 쿼리에서 정수 – theochandra

답변

0

"Barcode_ID =?"와 같은 T_MAIN에서 Barcode_ID, WO, ProductCategory, SubProductName, OrderType을 선택하면 매개 변수 쿼리를 사용할 수 있습니다. 그런 다음 $ barcode를 execute 메소드에 전달하십시오.

+0

+1이기 때문에 이미 시도했지만 작동하지 않습니다. @theochandra는 더 많은 OOP 접근을 위해'odbc_ * '대신 PDO (http://php.net/manual/en/book.pdo.php)를 사용하는 것을 고려합니다 – gmsantos

0

의견을 보내 주셔서 감사합니다. 나는 이미 문제를 해결했다. 경고 표시 'SQL 상태 07001 in SQLExecDirect', 그것을 검색 할 때 '잘못된 번호 매개 변수'가 나타납니다. 그래서이 코드를보십시오 : $ sql = "Barcode_ID = '"(int) $ barcode. "'"; T_MAIN에서 Barcode_ID, WO, ProductCategory, SubProductName, OrderType을 선택하십시오. 및 그 작품 완벽하게.

관련 문제