我正在尝试让我的php脚本输出我的mysql数据库中的行名。我知道问题出在长>= '$Slong‘上。数据库中的长值是一个浮点型。Slong值设置为1.11,并且有一行的long值为1.21。
我认为这就是问题所在:
$Slong = $long - 0.01;
$result = mysql_query("SELECT name FROM locations WHERE age < '$age' AND aTime = 'Morning' AND long >= '$Slong'");发布于 2016-07-29 15:18:48
Long是保留关键字,因此请在前后使用反引号:
$Slong = $long - 0.01;
$result = mysql_query("SELECT name FROM locations WHERE age < '$age' AND aTime = 'Morning' AND `long` >= '$Slong'");发布于 2016-07-29 15:21:43
long是sql中的关键字。您应该使用反勾号字符(`)。
有关反勾号,请参阅https://superuser.com/questions/254076/how-do-i-type-the-tick-and-backtick-characters-on-windows
此外,您可以使用以下方法来避免sql注入,而不是使用直接替换值。
要实现这一点,您基本上有两种选择:
使用PDO (对于任何支持的数据库驱动程序):
$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');
$stmt->execute(array('name' => $name));
foreach ($stmt as $row) {
// do something with $row
}使用MySQLi (用于MySQL):
$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?');
$stmt->bind_param('s', $name);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// do something with $row
}https://stackoverflow.com/questions/38652390
复制相似问题