使用来自外部程序的POST更新表

使用来自外部程序的POST更新表,post,insert,request,Post,Insert,Request,我有一个外部程序,它通过POST将一些数据发送到我的服务器。我知道数据是被发送的,因为我回发了这篇文章,而且很好。但当我在查询中添加一个INSERT时,它就不起作用了。这是我的代码:id=int(主键),home,mob=double,其余是varchar。提前谢谢 <?php $mysqli = new mysqli('####','###','###','user'); if (mysqli_connect_errno()) { printf("Can't connect to S

我有一个外部程序,它通过POST将一些数据发送到我的服务器。我知道数据是被发送的,因为我回发了这篇文章,而且很好。但当我在查询中添加一个INSERT时,它就不起作用了。这是我的代码:id=int(主键),home,mob=double,其余是varchar。提前谢谢

<?php
$mysqli = new mysqli('####','###','###','user');
if (mysqli_connect_errno()) {
  printf("Can't connect to SQL Server. Error Code %s\n",       mysqli_connect_error($mysqli));
exit;
}
$date   = $_POST['date'];
$desc   = $_POST['desc'];

mysqli->query("INSERT INTO user_info (id, home, mob, type, description, date) VALUES    (NULL,'','','',$desc,$date);");

mysql_real_escape_string($date),
mysql_real_escape_string($suburb));

$mysqli->close(); 
?>

给出错误消息,您的$mysqli->查询中缺少“$”,更正的代码应为:

对于其他问题,请尝试获取发送到数据库的SQL,并在本地查询上运行它,以查看是否存在缺少的SQL错误

<?php
$date   = mysql_real_escape_string( $_POST['date'] );
$desc   = mysql_real_escape_string( $_POST['desc'] );

$query =<<<SQLQUERY
     INSERT INTO user_info 
              (home, mob, type, description, date) 
        VALUES    
              ('',   '',  '',   $desc,       $date)
SQLQUERY;

// Can you print out or get the value for $query?

$mysqli->query($query);

$mysqli->close();
?>


这是您真正的代码,还是您真的没有清理进入web应用程序的数据?今年是几年?仍然有程序员乞求SQL注入攻击?客户或雇主首先应该问的一件事是,写几行代码将记录插入数据库,如果看起来像这样,就立即尽快启动记录。我以前从未使用过sql或php。这是我的第一次尝试,服务器并没有向公众开放,它只是一个测试服务器。我知道,但在任何人进行任何涉及SQL的编程之前,在允许任何人编写一行代码之前,应该先了解数据的参数化和清理。不管内部内部网与否,都要养成清理数据的习惯。至少使用mysql\u real\u escape\u string函数谢谢你提供的信息,我刚刚读到了关于SQL注入的内容。。没有意识到对某人来说访问数据库是如此容易。谢谢嗯,我没有收到任何错误。只是没有插入任何内容。(我用escape_string_函数更新了我的代码)实际上这个错误刚刚出现:解析错误:语法错误,在C:\wamp\www\user323.php的第10行出现意外的T_OBJECT_运算符是的,我更正了,我在上面的评论中发布了,但它被隐藏了。现在没有错误,但没有任何内容插入到我的表中。我假设用户信息上的id是自动递增的。如果是,您根本不需要在查询中传递它。如果不是,而且它是主键,那也可能是个问题。是的,它是自动递增的,好吧,我来试试。我不看我的程序,而是直接通过浏览器来做。e、 g host/user.php?date=20110710&desc=here,这样我就可以直接测试,而不是通过我的应用程序。