为什么以下PHP代码没有在数据库中插入值?

时间:2014-10-08 12:47:17

标签: php mysql

我想将表单的值插入名为company的数据库表中。但是这个程序一次又一次地告诉我,我的查询没有被执行。我可以知道为什么会这样吗??

我已将表单的所有值存储到一个名为insert的数组中,然后我将数组内爆并将其命名为newarray,以便它可以插入到数据库中。

但这似乎对我不起作用。请告诉我这里有什么问题?

<?php
$host = "localhost";
$name = "root";
$password = "";
$db = "shopinz";
$con = mysqli_connect($host,$name,$password,$db);
$insert = array();
$newarray = array();
if(mysqli_connect_errno()){
    echo("Cannot connect to the databse".mysqli_connect_errno());
    exit();
}
else{
    if($_SERVER['REQUEST_METHOD'] == 'POST'){
        foreach($_POST as $value){
            if($value == $_POST['submit']){
                break;
            } 
            else{
                    array_push($GLOBALS['insert'],$value);
            }
        }
         $newarray = implode(',',$insert);
         $result = mysqli_query($con,"INSERT INTO company (company_name,company_number,company_address) VALUES($newarray)");
         if($result){
             echo("1 row added");
         }
         else{
             echo("Query not executed");
         }
     }
 }
 ?>

2 个答案:

答案 0 :(得分:1)

这一行没有意义:

array_push($GLOBALS['insert'],$value);

将您的值推送到您需要的值$insert

unset($_POST['submit']);
foreach($_POST as $value){
    $insert[] = "'".$con->real_escape_string($value)."'";
}
$newarray = implode(',',$insert);

注意:我建议改用预备语句。

$insert = $con->prepare('INSERT INTO company (company_name,company_number,company_address) VALUES(?, ?, ?)');
$insert->bind_param('sss', $_POST['company_name'], $_POST['company_number'], $_POST['company_address']);
$insert->execute();

答案 1 :(得分:-3)

查看代码我可以看到的问题是:

 foreach($_POST as $value){

在你的foreach中你有$ _POST,但你没有定义它应该是什么,它应该是$ _POST [&#39;某些&#39;]