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."','".$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);

或者,如果您要插入特定列,则可以通过将 column_name* 替换为您的实际列名称来使用它

$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 - 整数,d - double ,s - 字符串,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();
?>

关于php - 将查询插入在线 MySQL 数据库不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44530439/

相关文章:

php - Joomla 不制作数据库

mysql - 无法与 MacOS 上运行的 MySQL 建立连接

php - OhGoogleMapFormTypeBundle 与 SonataAdminBundle

php - 标记段落中的短语

php - Woocommerce:特定产品的强制优惠券

php - SQL查询从3个表中选择多对多

php - 如何转义 MYSQL 查询中的引号?

PHP 和我当前的 HTML w/CSS 文件

MySQL 为每个产品返回 1 张图像

mysql - mySQL 表上的唯一字段 - 生成促销代码