无法从 SESSION 变量和查询数据库中读取值


Can not read value from SESSION variable and query database

我无法获取会话变量的值以将其插入我的数据库。纬度和液化天然气是双倍

$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() ;