我想将表单的值插入名为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");
}
}
}
?>
答案 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;]