值没有插入数据库?

时间:2013-12-25 06:51:40

标签: php mysql

<?php
include 'config.php';
$lat=$_GET["latitudee"];
$lon=$_GET["longitude"];
$sql="INSERT INTO coordinates(latitude,longitude)
      VALUES ('$_POST[$lat]','$_POST[$lon]')";
       if (!mysqli_query($con,$sql))
        {
       die('Error: ' . mysqli_error($con));
        }
      echo "1 record added";
  ?>

这是我在数据库中的表格:

CREATE TABLE IF NOT EXISTS `coordinates` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `latitude` float NOT NULL,
  `longitude` float NOT NULL,
  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
  

http://localhost.com/input.php?latitudee=3.14159&longitude=4.14159

未插入值。有什么问题?

4 个答案:

答案 0 :(得分:5)

试试这个:

$sql="INSERT INTO coordinates(latitude,longitude)
VALUES
('$lat','$lon')";

因为你在这个变量中存储了get值:

$lat=$_GET["latitudee"];
$lon=$_GET["longitude"];

并在您的查询中写下这个:
   $_POST[$lat]','$_POST[$lon]所以改变就像我建议的那样。

旁注:确保您使用了哪种方法:POST or GETescape该变量以防止sql注入。

Read this:How can I prevent SQL injection in PHP?

答案 1 :(得分:0)

使用此

<?php
include 'config.php';
$lat=$_GET["latitudee"];
$lon=$_GET["longitude"];
$sql="INSERT INTO coordinates(latitude,longitude)
      VALUES ('$lat','$lon')";
$In_qrr = mysqli_query($con,$sql);
       if (!In_qrr)
        {
       die('Error: ' . mysqli_error($con));
        }
      echo "1 record added";
  ?>

答案 2 :(得分:0)

  1. $ _GET [“ latitudee ”]索引中有拼写错误。需要纬度而不是 latitudee
  2. 您的代码运行正常。可能没有设置$ _GET和$ _POST元素。启用error_reporting或使用此检查代码。
  3. ```

    <?php
    include 'config.php';
    
    //--
    echo isset($_GET["latitudee"]) ?: 'GET array element with index latitudee is not set';
    echo isset($_GET["longitude"]) ?: 'GET array element with index longitude is not set';
    //--
    
    $lat=$_GET["latitudee"];
    $lon=$_GET["longitude"];
    
    //--
    echo isset($_POST[$lat]) ?: 'POST array element with index ' . $lat . ' is not set';
    echo isset($_POST[$lon]) ?: 'POST array element with index ' . $lon . ' is not set';
    //--
    
    $sql="INSERT INTO coordinates(latitude,longitude)
    VALUES
        ('$_POST[$lat]','$_POST[$lon]')";
           if (!mysqli_query($con,$sql))
            {
           die('Error: ' . mysqli_error($con));
            }
          echo "1 record added";
    

答案 3 :(得分:0)

首先你必须在$ _POST [$ lat]的地方使用$ lat。因为你已经分配了$ lat = $ _ GET [“latitudee”];那你为什么要使用$ _POST [$ lat]。请使用下面的代码。

 <?php
    include 'config.php';
    $lat=$_GET["latitudee"];
    $lon=$_GET["longitude"];
    $sql="INSERT INTO coordinates(latitude,longitude)
          VALUES ('$lat','$lon')";
           if (!mysqli_query($con,$sql))
            {
           die('Error: ' . mysqli_error($con));
            }
          echo "1 record added";
      ?>