php - 带 HTTP1.1 的 SQL 插入

标签 php mysql

抱歉,这是一个业余问题,但我不知道为什么这不起作用。 我有一个“add.php”来连接到 SQL 服务器

<?php
    include("connect.php");

    $link=Connection();

    $ID1=$_POST["ID1"];
    $ID2=$_POST["ID2"];
    $ID3=$_POST["ID3"];
    $ID4=$_POST["ID4"];
    $ID5=$_POST["ID5"];

    $query = "INSERT INTO Battery (ID01, ID02, ID03, ID04, ID05) 
        VALUES ('".$ID1."','".$ID2.",'".$ID3.",'".$ID4."','".$ID5."')"; 

    mysql_query($query,$link);
    mysql_close($link);

    header("Location: index.php");
?>

我使用一个简单的 HTTP 1.1 协议(protocol)

GET /add.php?ID1=1int&ID2=2char&ID3=3char&ID4=4int&ID5=2015-04-13 01:00:00 HTTP/1.1\r\myhost\r\nContent-Type: application/x-www-form-urlencoded\r\nConnection:close\r\n\r\n\r\n

主机向我抛出这个错误:

+IPD,168:<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>hosting</center>
</body>
</html>

如果有人有任何想法让我试用,我将不胜感激!我真是一头雾水……

最佳答案

此处 PHP 代码在您进行 GET 调用时处理 POST 请求。尝试将 $_POST 更改为 $_GET,如下所示:

<?php
    include("connect.php");

    $link=Connection();

    $ID1=$_GET["ID1"];
    $ID2=$_GET["ID2"];
    $ID3=$_GET["ID3"];
    $ID4=$_GET["ID4"];
    $ID5=$_GET["ID5"];

    $query = "INSERT INTO Battery (ID01, ID02, ID03, ID04, ID05) 
            VALUES ('".$ID1."','".$ID2.",'".$ID3.",'".$ID4."','".$ID5."')"; 

    mysql_query($query,$link);
    mysql_close($link);

    header("Location: index.php");
?>

如果您不想更改 PHP 代码,请向该文件发出 POST 请求。

编辑:

抱歉,我刚刚看到您使用的是 POST 请求。 Content-Type: application/x-www-form-urlencoded。以上内容我还是会保留的。

请引用 this answer .

尝试通过 HTTP 请求通过 XML 传递数据,它会更加结构化和易于管理。

POST 方法

POST方法用于向服务器发送一些数据,例如文件更新、表单数据等。下面的例子利用POST方法向服务器发送一个表单数据,将是由一个process.cgi处理,最后返回一个response:

POST /cgi-bin/process.cgi HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.domain.com/add.php
Content-Type: text/xml; charset=utf-8
Content-Length: <!-- The Content Length -->
Accept-Language: en-us
Accept-Encoding: gzip, deflate <!-- optional -->
Connection: Keep-Alive
<?xml version="1.0" encoding="utf-8"?>
<DATA>    
    <ID>ID01</ID>
    <ID>ID02</ID>
    <ID>ID03</ID>
    <ID>ID04</ID>
    <ID>ID05</ID>
</DATA>

也许您需要根据您的需要或数据格式更改 XML。

更多信息请引用LinkA , LinkBLinkC


希望这有助于...

关于php - 带 HTTP1.1 的 SQL 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29783151/

相关文章:

mysql - 多表中的 SQL 搜索

mysql - MySQL 可以用 || 连接字符串吗?

php - PHP中如何获取客户端真实IP地址?

php - 引用 — 有关 PDO 的常见问题

php - 如何使用 php 在 Windows 命令提示符下编译 C 代码

mysql - 无法在 xampp 上运行 mysql 服务器

php - 如何检查用户名是否已存在于 codeigniter 中

php - 多层次ID生成

mysql - 列不能为空 Mysql

mysql - FIND_IN_SET 与 GROUP_CONCAT 太慢(MySQL 中的密集排名)