【发布时间】:2017-10-27 04:47:19
【问题描述】:
警告:mysqli_real_escape_string() 期望参数 2 为字符串,数组在 C:\xampp\htdocs\nav\php\pinsert.php 中给出
当我尝试在 angularjs 中使用 http.post 将数组发布到 php 时,出现上述错误。将数组发送到php并将其插入数据库的代码是什么。
app.js
$scope.saveRecord = function (newProduct)
{
$scope.albumNameArray = [];
angular.forEach($scope.check, function(album){
if (album.select) $scope.albumNameArray.push(album.name);
});
$http.post("php/pinsert.php",{
'names' : $scope.newProduct.name,
'catg' : $scope.newProduct.catg,
'stat' : $scope.newProduct.stat,
'tag' : $scope.albumNameArray
})
PHP
<?php
$connect = mysqli_connect("localhost", "root", "","user");
$data = json_decode(file_get_contents("php://input"));
$p_name = mysqli_real_escape_string($connect, $data->names);
$p_catg = mysqli_real_escape_string($connect, $data->catg);
$status = mysqli_real_escape_string($connect, $data->stat);
$tag = mysqli_real_escape_string($connect, $data->tag);
$query = "INSERT INTO products(pname,pcatg,status,tag) VALUES ('$p_name','$p_catg','$status','$tag')";
$result = mysqli_query($connect, $query) ;
if($result == TRUE)
{
echo "Data Inserted...";
}
else
{
echo 'Error';
}
?>
【问题讨论】:
-
错误提示您将数组作为第二个参数传递给 mysqli_real_escape_string() 而不是字符串。
-
回答我的问题.. 使用 angularjs 将数组发送到 php 的代码是什么
-
如果您将数组传递给函数,则表示您收到了一个数组。这就是为什么我认为您不理解错误消息的原因。
-
print_r($data) -
尝试以 $data['names'] 方式访问数据。