数据库在mySql服务器中返回一个空值


Database returns an Empty value in mySql server

我正在使用谷歌地图API制作路线。当我定义一个路由时,该值会进入数据库,但返回一个空值。数据库中的主键递增,但其他值为空。知道吗?

<?php
session_start();
// connection to mysql
$latitude=$_POST['Lat'];
$longitude=$_POST['Long'];
$start_point=$_POST['s_point'];
$end_point=$_POST['e_point'];
$link = mysqli_connect("localhost","root","123456","db_mmw") or die ("Error" .mysqli_errno($link));
// Check connection
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO tbl_route (latitude,longitude,start_point,end_point)  VALUES ('".$latitude."','".$longitude."','".$start_point."','".$end_point."')";
if (!mysqli_query($link,$sql))
  {die('Error: ' . mysqli_error($link));
}
mysqli_close($link); ?>

您在(现已删除)评论中发布的内容是,您的表单包含name="long"name="lat"

这些与您的不匹配:

 $latitude=$_POST['Lat']; // uppercase L
 $longitude=$_POST['Long']; // uppercase L
 $start_point=$_POST['s_point'];
 $end_point=$_POST['e_point'];

更改为:

 $latitude=$_POST['lat']; // lowercase l
 $longitude=$_POST['long']; // lowercase l
 $start_point=$_POST['s_point'];
 $end_point=$_POST['e_point'];
  • PHP变量区分大小写

旁注:您当前的代码对SQL注入是开放的。使用准备好的报表PDO

编辑/重写:

<?php
session_start();
$link = mysqli_connect("localhost","root","123456","db_mmw") or die ("Error" .mysqli_errno($link));
// connection to mysql
$latitude=$_POST['lat'];
$longitude=$_POST['long'];
$start_point=$_POST['s_point'];
$end_point=$_POST['e_point'];

// Check connection
if (mysqli_connect_errno())
    {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
$sql="INSERT INTO tbl_route (latitude,longitude,start_point,end_point)  VALUES ('".$latitude."','".$longitude."','".$start_point."','".$end_point."')";
if (!mysqli_query($link,$sql))
    { 
  die('Error: ' . mysqli_error($link));
    }
mysqli_close($link);
?>

这是另一个问题:

<input type="submit" name="Define Route" value="Define Route"

在您的表单之外,这将阻止它工作,此外还有一个丢失的>,应该读作:

<input type="submit" name="Define_Route" value="Define Route">

我把name="Define Route"改成了name="Define_Route",以防万一。

<div class ="form"> 
<form method="post" action=""><br> <table border="0"> 
<tr> <td>Start Point</td><td> 
<input type="text" name="s_point"></td> </tr> <tr> 
<td>End Point</td><td> <input type="text" name="e_point"></td> </tr> 
<tr> <td> Latitude </td><td> <input type="text" name="lat"></td> </tr> 
<tr> <td> Longitude </td><td> <input type="text" name="long"></td> </tr> </table> 
<input type="submit" name="Define_Route" value="Define Route">
</form> 
<br><br> </div> 
</div>

用对我有用的表格完成重写

对所有四列使用VARCHAR(255)

(在一个文件中使用)

<?php
session_start();
$link = mysqli_connect("localhost","root","123456","db_mmw") or die ("Error" .mysqli_errno($link));
if(isset($_POST['Define_Route'])){
// connection to mysql
$latitude=$_POST['lat'];
$longitude=$_POST['long'];
$start_point=$_POST['s_point'];
$end_point=$_POST['e_point'];

// Check connection
if (mysqli_connect_errno())
    {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
$sql="INSERT INTO tbl_route (latitude,longitude,start_point,end_point)  VALUES ('".$latitude."','".$longitude."','".$start_point."','".$end_point."')";
if (!mysqli_query($link,$sql))
    { 
  die('Error: ' . mysqli_error($link));
    }
} // brace for if(isset($_POST['Define_Route']))
mysqli_close($link);
?>
<div class ="form"> 
<form method="post" action=""><br> <table border="0"> 
<tr> <td>Start Point</td><td> 
<input type="text" name="s_point"></td> </tr> <tr> 
<td>End Point</td><td> <input type="text" name="e_point"></td> </tr> 
<tr> <td> Latitude </td><td> <input type="text" name="lat"></td> </tr> 
<tr> <td> Longitude </td><td> <input type="text" name="long"></td> </tr> </table> 
<input type="submit" name="Define_Route" value="Define Route">
</form> 
<br><br> </div> 
</div>