我將創建一個控制器,該控制器將在數據庫的選定表中列出不同的選定字段,並將其傳遞給我的API。將參數傳遞給角
目前,我正在使用一個髒方法,它創建了幾個控制器,其中有字段名和表名。
controller.js
.controller('ListDistinctCustomerCtrl', function($scope, $http) {
var xhr = $http({
method: 'post',
url: 'http://localhost/api/list-distinct.php?table=customer&field=cust_code'
});
xhr.success(function(data){
$scope.data = data.data;
});
})
.controller('ListDistinctSupplierCtrl', function($scope, $http) {
var xhr = $http({
method: 'post',
url: 'http://localhost/api/list-distinct.php?table=supplier&field=supp_code'
});
xhr.success(function(data){
$scope.data = data.data;
});
})
,這是API文件
列表distinct.php
<?php
require_once '/config/dbconfig.php';
$table = $_GET['table'];
$field = $_GET['field'];
GetData($table,$field);
function GetData($tablename,$fieldname) {
$sql = "SELECT distinct $fieldname as expr1 FROM $tablename order by expr1 asc";
try {
$db = getdb();
$stmt = $db->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo json_encode(array('data' => $data));
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
?>
我相信這是一個乾淨,更好的方式來做這個。
也許創建一個API'服務',所以你沒有重複的代碼 – Ties
你的問題是什麼?清潔JS或PHP? – Ties
您應該*不*將您的GET參數直接解析到您的SQL查詢中。 Expecialy不適用於'field' /'table'。那種安全滯後很大。 – lin