我创建了下面这个非常简单的脚本,假设它可以获取信息并将其插入数据库,但当我这样做时,什么都没有发生,这是怎么回事?我尝试在url中运行以下内容:
http://localhost/insert.php?title=test&body=lol&longitude=12&latitude=53&status=0
<?php
$db = new mysqli("localhost","test","test", "test");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if (isset($_GET['title']) && isset($_GET['body']) && isset($_GET['longitude']) && isset($_GET['latitude'])) {
$title = $_GET['title'];
$body = $_GET['body'];
$longitude = (float)$_GET['latitude'];
$latitude = (float)$_GET['latitude'];
$strSQL = $db->query("INSERT INTO camps (title, body, longitude, latitude, status) VALUES (`$title`, `$body`, `$longitude`,`$latitude`, 0)");
}
?>
您应该在执行查询后检查错误。
删除查询中值周围的反勾号,因为这些反勾号用于转义列名。您应该使用单引号:
$strSQL = $db->query("INSERT INTO camps (title, body, longitude, latitude, status) VALUES ('$title', '$body', '$longitude','$latitude', 0)");
但最好的解决方案是了解准备好的语句。