我想使用php和angular js将数据插入MS Access数据库 我的Angular JS代码如下
var app=angular.module('cardupdate',[]);
app.controller('cardContl',function($scope,$http){
$scope.insertCardInfo=function(){
$http.post("insert.php",{'name':$scope.name,'email':$scope.email})
.success(function(){
$scope.msg="data inserted success";
});
};
});
和
之后的insert.php代码$dbName =$_SERVER["DOCUMENT_ROOT"] . "/name/test.mdb";
if (!file_exists($dbName)) {
die("Could not find database file.");
}
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName;";
$conn_access = odbc_connect($connstr, "", "");
$data=json_decode(file_get_contents("php://input"));
$name=$db->real_escape_string($data->name);
$email=$db->real_escape_string($data->email);
$q="insert into Table1 values(1,'$name','$email')";
odbc_exec($conn_access, $q);
我收到以下错误:
致命错误:在第14行的C:\ xampp \ htdocs \ name \ insert.php中调用未定义的方法PDO :: real_escape_string()
答案 0 :(得分:3)
您尝试使用的功能不存在,因此出现错误。您正在寻找的是PDO的另一种选择(尽管鲜为人知),称为PDO::quote
。
但是请注意:
如果您使用此函数构建SQL语句,强烈建议您使用PDO :: prepare()来准备带有绑定参数的SQL语句,而不是使用PDO :: quote()将用户输入插入到SQL语句中。带有绑定参数的预处理语句不仅更易于移植,更方便,不受SQL注入的影响,但执行速度通常比内插查询快得多,因为服务器端和客户端都可以缓存查询的编译形式。
所以你宁愿使用prepared statements并避免整个转义过程。