我无法获取会话变量的值以将其插入我的数据库。纬度和液化天然气是双倍
$lat = mysql_real_escape_string($lat);
$lng = mysql_real_escape_string($lng);
$sql="INSERT INTO POINT (LocationLat,LocationLngme,UserName) VALUES (&lat,&lng,$usr)";
mysql_query($sql);
?>
>session_start()
必须位于您希望使用会话的任何页面的顶部:
<?php
session_start();
$lat = $_REQUEST['lat'];
$lng = $_REQUEST['lng'];
$usr = "'".echo $_SESSION['username']."'";
$lat = mysql_real_escape_string($lat);
$lng = mysql_real_escape_string($lng);
$sql="INSERT INTO POINT (LocationLat,LocationLngme,UserName) VALUES ('&lat','&lng','$usr')";
mysql_query($sql);
?>
仅供参考,您在查询中的字符串值周围缺少引号。
请不要在新代码中使用mysql_*
函数。它们不再维护并被正式弃用。看到红框了吗?请改为了解预准备语句,并使用 PDO 或 MySQLi - 本文将帮助您决定哪个语句。如果您选择PDO,这是一个很好的教程。
你也对SQL注入持开放态度
@Jonh Conde的答案可能适合您,但最好执行以下操作:
<?php
session_start();
$lat = mysql_real_escape_string( trim( $_REQUEST['lat'] ) );
$lng = mysql_real_escape_string( trim( $_REQUEST['lng'] ) );
$usr = mysql_real_escape_string( trim( $_SESSION['username'] ) );
$sql="INSERT INTO `POINT` (`LocationLat`, `LocationLngme`, `UserName`) VALUES ('$lat', '$lng', '$usr')";
// Putting '`' backticks around column and table names makes sure some mysql errors are prefented.
mysql_query($sql);
?>
另请查看自mysql_*
被实践以来mysqli_*
或PDO
-
trim()
;