【发布时间】:2014-07-10 17:12:38
【问题描述】:
我有一个网络服务器,它正在从日志收集服务器收集传入的 HTTP POST 消息。我正在尝试使用 php 脚本收集传入的帖子数据,然后将其下载到 mysql 中。我对php和mysql的经验有限。
这是我一直在编写的脚本,但我似乎无法让它工作:
<?php
ob_start();
print_r($_REQUEST);
$data = ob_get_contents();
ob_end_clean();
$mysqli = new mysqli("localhost", "root", "XXXX", "XXXX");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
mysqli_query("INSERT INTO `XXXX` VALUES ('$data')");
Print "Your information has been successfully added to the database.";
?>
我不确定我在哪里失败了,如果有任何帮助,我将不胜感激!如果您想知道的话,我确实用 XXXX 替换了我的网络服务器的密码和数据库名称。
我能够使用此脚本成功登录 mysql,但我使用 PHP 收集的 POST 数据似乎工作不正常。
谢谢
【问题讨论】:
-
尝试打印出您的 SQL 语句,看看它是否有效。我的猜测是 $data 的格式不适合在 SQL 插入中插入值列表。因为使用 ob_start();和 ob_get_contents();将帖子数据转换为值列表是愚蠢的。
-
使用
mysqli时,您应该使用参数化查询和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值来完成此操作,因为您将创建严重的SQL injection bugs。
标签: php mysql function http post