Php 将查询插入在线MySQL数据库不工作

Php 将查询插入在线MySQL数据库不工作,php,mysql,Php,Mysql,我正在尝试将数据插入在线MySql数据库,几个月前我使用过这个查询,现在它似乎不起作用 我的表格: $name = "Hilary"; $number = "768"; $orderss = "Rice x1"; $location = "Chilenje"; $con= mysqli_connect($host,$user,$pass,$db); $query= "insert into orders values('".$name."','".$number."','".$orderss

我正在尝试将数据插入在线
MySql
数据库,几个月前我使用过这个查询,现在它似乎不起作用

我的表格:

$name = "Hilary";
$number = "768";
$orderss = "Rice x1";
$location = "Chilenje";

$con= mysqli_connect($host,$user,$pass,$db);

$query= "insert into orders values('".$name."','".$number."','".$orderss."','".$location."');";

$result= mysqli_query($con,$query);

if(!$result)
{
    $response = array();
    $code= "reg_false";
    $message="Error Placing Order...";
    array_push($response,array("code"=>$code,"message"=>$message));
    echo json_encode(array("server_response"=>$response));

}
else
{
    $response = array();
    $code= "reg_true";
    $message="Order Successful,Please wait for our call...";
    array_push($response,array("code"=>$code,"message"=>$message));
    echo json_encode(array("server_response"=>$response));

}

mysqli_close($con);

?>

当我运行此表单时,我得到服务器响应的“错误下订单”部分,并且没有插入值。如果要插入表的所有列,请帮助我将
$query
变得非常简单

$stmt = $conn->prepare("INSERT INTO orders VALUES (?, ?, ?, ?)");
$stmt->bind_param("siss", $name, $number, $orderss, $location);
或者,如果要插入到特定列中,可以使用实际列名称替换
列名称*

$stmt = $conn->prepare("INSERT INTO orders (column_name1, column_name2, column_name3, column_name4) VALUES (?, ?, ?, ?)");
$stmt->bind_param("siss", $name, $number, $orderss, $location);
或者我还修改了您当前的代码,这样您就可以在最后测试另外一件事了。
“siss”
是4种不同类型的参数
I-integer、d-double、s-string、b-BLOB

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$name = "Hilary";
$number = "768";
$orderss = "Rice x1";
$location = "Chilenje";

// Create connection
$con = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($con->connect_error) {
    die("Connection failed: " . $con->connect_error);
}

// prepare and bind
$stmt = $conn->prepare("INSERT INTO orders VALUES (?, ?, ?, ?)");
$stmt->bind_param("siss", $name, $number, $orderss, $location);

if($stmt->execute()) {
$stmt->execute();
    $response = array();
    $code= "reg_true";
    $message="Order Successful,Please wait for our call...";
    array_push($response,array("code"=>$code,"message"=>$message));
    echo json_encode(array("server_response"=>$response));
} else {

    $response = array();
    $code= "reg_false";
    $message="Error Placing Order...";
    array_push($response,array("code"=>$code,"message"=>$message));
    echo json_encode(array("server_response"=>$response));

}
$stmt->close();
$con->close();
?>


您对SQL注入非常开放。由于您使用的是mysqli,请利用和。另外,在运行查询时检查错误消息。尝试获取更具体的错误。您应该在此处阅读一些文档。悲伤的是,我正在联机运行,现在无法在本地运行,但如果我获取“错误放置”信息,这意味着没有错误?@Hilz如果您获取“错误放置”,则表示您有错误。使用
mysqli\u error($con)
获取错误消息。请避免操作故障,并请使用准备好的语句谢谢,这与在不同服务器上尝试相结合,表明它没有连接,输入了错误的密码,很好now@Rtra你能不能编辑一下你的答案,以表明同样的答案也可以用事先准备好的陈述来做出?@尽管我刚刚修改了我的答案,你可以在最后试试。谢谢,这也解释得很好