php-api插入查询不添加到数据库中


php api insert query do not add to database

我创建了下面这个非常简单的脚本,假设它可以获取信息并将其插入数据库,但当我这样做时,什么都没有发生,这是怎么回事?我尝试在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)");

但最好的解决方案是了解准备好的语句。