Php 调用未定义的方法PDO::real_escape_string()

Php 调用未定义的方法PDO::real_escape_string(),php,angularjs,ms-access,Php,Angularjs,Ms Access,我想使用php和js将数据插入MS access数据库 我的代码如下 var app=angular.module('cardupdate',[]); app.controller('cardContl',function($scope,$http){ $scope.insertCardInfo=function(){ $http.post("insert.php",{'name':$scope.name,'email':$scope.email})

我想使用php和js将数据插入MS access数据库 我的代码如下

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";
                });
        };
});
并在下面插入.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(),您尝试使用的函数不存在,因此出现错误。您正在寻找的是PDO的替代方案(尽管不太为人所知),即

但是,请注意:

如果使用此函数生成SQL语句,强烈建议您使用PDO::prepare()来准备带有绑定参数的SQL语句,而不是使用PDO::quote()将用户输入插入SQL语句。带有绑定参数的预处理语句不仅更易于移植、更方便、不受SQL注入的影响,而且通常比插值查询执行得更快,因为服务器端和客户端都可以缓存已编译的查询形式


因此,您宁愿使用并避免整个转义过程。

您尝试使用的函数不存在,因此出现错误。您正在寻找的是PDO的替代方案(尽管不太为人所知),即

但是,请注意:

如果使用此函数生成SQL语句,强烈建议您使用PDO::prepare()来准备带有绑定参数的SQL语句,而不是使用PDO::quote()将用户输入插入SQL语句。带有绑定参数的预处理语句不仅更易于移植、更方便、不受SQL注入的影响,而且通常比插值查询执行得更快,因为服务器端和客户端都可以缓存已编译的查询形式


因此,您宁愿使用并避免整个转义过程。

如果不使用,您应该按照最后提供的链接使用准备好的语句。如何从json_decode(或$data)中提取名称和电子邮件值?谢谢您的警告。好了,您不能用准备好的语句构建大批量insert语句。您需要一个字符串块(2020)。您不需要,您应该按照结尾提供的链接使用准备好的语句。我如何从json_decode(或$data)中提取名称和电子邮件值?谢谢您的警告。好了,您不能用准备好的语句构建大批量insert语句。您需要一个字符串块(2020)。