我使用ODBC通过Web服务将我的Ms SQL Server数据库与My Android App连接。 我尝试使用PHP脚本获取数据,它可以顺利运行以从我的Ms SQL Server数据库中获取所有数据。但是当我尝试使用我的php脚本中的'WHERE'子句获取一些数据并在我的查询中添加参数时,我收到了错误。这是我的PHP脚本:
<?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 :(得分:0)
使用参数化查询,例如,&#34;从T_MAIN中选择Barcode_ID,WO,ProductCategory,SubProductName,OrderType,其中Barcode_ID =?&#34;然后将$ barcode传递给execute方法。
答案 1 :(得分:0)
感谢您的所有建议。我已经解决了这个问题。警告显示'SQLExecDirect中的SQL状态07001',当我搜索它时,我得到'错误的数字参数'。所以我试试这段代码: $ sql =“选择Barcode_ID,WO,ProductCategory,SubProductName,来自T_MAIN的OrderType,其中Barcode_ID ='”。(int)$ barcode。“'”; 它的作品非常完美。