我正在使用谷歌地图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>