如何使用php将post数据插入mysql db?

Ske*_*tle 5 php mysql

我已经对此进行了数小时的故障排除,但不确定为什么这不起作用。我正在尝试使用 Qt 应用程序发送 http 帖子并将其用作我的 php 脚本:

<?php
$con=mysqli_connect("*.mysql.eu2.*.com:3306","*****","****","****");

if (mysqli_connect_errno($con))
{
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
$price = filter_input(INPUT_POST, 'price', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
$type = filter_input(INPUT_POST, 'type', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
$stock= filter_input(INPUT_POST, 'stock', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);

  $currentid = mysqli_insert_id();

  if (trim($id) == '') {
    exit('id cannot be empty!');
  }
  if (trim($price) == '') {
    exit('price cannot be empty!');
  }
  if (trim($type) == '') {
    exit('type cannot be empty!');
  }
  if (trim($stock ) == '') {
    exit('stock cannot be empty!');
  }

  $result = "insert into ammo (ammoType,storeId,ammoStock,ammoPrice) VALUES ('".$type."','".$id."','".$stock."','".$price."');";

   mysqli_query($result) or die("Could not insert data");



mysqli_close($con);
?>
Run Code Online (Sandbox Code Playgroud)

在我获得成功之前,我一直处于某个阶段,但随后这些值实际上并没有出现在我的数据库中。谢谢,-大卫

Fun*_*ner 5

首先,您没有连接到您的查询。

mysqli_query($result)
Run Code Online (Sandbox Code Playgroud)

该函数需要 2 个参数,首先是 DB 连接。

mysqli_query($con,$result)
Run Code Online (Sandbox Code Playgroud)

阅读手册:http : //php.net/manual/en/mysqli.query.php

你需要检查错误。我们不知道您的 HTML 表单中有什么内容,您是否使用了 POST 方法,以及您的元素是否具有正确的名称属性。

如果您收到未定义索引通知,您就会知道该做什么。

错误报告添加到文件顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code
Run Code Online (Sandbox Code Playgroud)

旁注:显示错误只应在暂存时进行,而不要在生产中进行。

这对你没有帮助

or die("Could not insert data");
Run Code Online (Sandbox Code Playgroud)

这确实

or die(mysqli_error($con));
Run Code Online (Sandbox Code Playgroud)

您还应该使用准备好的语句。

注意:

如果 MySQL 抱怨数据进入为Jack's Bar & Grill,那么您将需要转义您的数据。

  • 无论哪种方式,你都应该。