Php 使用来自ajax的数组进行MYSQL查询

Php 使用来自ajax的数组进行MYSQL查询,php,mysql,ajax,Php,Mysql,Ajax,我有一个来自ajax函数的“field_names”数组。其结构简单 Array ( [0] => balcony [1] => bathroom_count [2] => building_age [3] => exchangeable [4] => floor_count [5] => floor_location [6] => furnished [7] => heating_system [8] => inside_site [9]

我有一个来自ajax函数的“field_names”数组。其结构简单

Array ( [0] => balcony [1] => bathroom_count [2] => building_age [3] => exchangeable [4] => floor_count [5] => floor_location [6] => furnished [7] => heating_system [8] => inside_site [9] => room_count [10] => using_status [11] => available_for_loan [12] => )
我使用这个数组来定义我的输入值。但是,当我将该数组用于插入查询时,我的代码就好像没有数组一样,即使我已经在表单上使用了它

$lastid = mysqli_insert_id($connect);
    foreach ($field_names as $field_name) {
                    $ads_field_query_string = "INSERT INTO ads_fields (ads_id, field_name, field_value) VALUES ('$lastid', '$field_name', '$_POST[$field_name]')";
                    $ads_fields_query_run = mysqli_query($connect, $ads_fields_query_string);
                    echo $ads_field_query_string;
                }

我想你有点打字错误

最初,sql查询被声明为
$ads\u field\u query\u string
,但在调用
mysqli\u query
时,您引用了
$ads\u fields\u query\u string
~请注意额外的
s

如果使用更简单的名称,则更容易发现此错误,例如:

$lastid = mysqli_insert_id( $connect );

foreach ( $field_names as $field ) {
    $sql = "INSERT INTO `ads_fields` ( `ads_id`, `field_name`, `field_value` ) VALUES ( '$lastid', '$field', '{$_POST[$field]}' )";

    $res = mysqli_query( $connect, $sql );
    echo $sql;
}
也就是说,代码容易受到SQL注入的影响-最好使用一个准备好的语句,比如:

$sql='insert into `ads_fields` ( `ads_id`, `field_name`, `field_value` ) values (?,?,?)';
$stmt=$connect->prepare( $sql );
if( $stmt ){
    $stmt->bind_param( 'iss', $lastid, $name, $value );

    foreach( $field_names as $name ){
        $value=$_POST[ $name ];
        $stmt->execute();
    }
    $stmt->close();
    $connect->close();
}

你的$u帖子[“字段名称”]应该是什么?这是你的全部密码吗?你在哪里说$field_names=$_POST[“field_names”];?如果您有这行代码,您是否尝试过通过var_dump($_POST[“field_names”])将其转储;?我的字段有5个输入。每一个都使用此数组的一个元素作为名称。复制/粘贴键入。固定的。尽管如此,query处理起来还是像没有数组一样。如果您可以添加ajax函数,可能会有所帮助