与php提交时出现sql错误
我的PHP文件提交一个条目到数据库表不起作用,我不明白为什么。它接受Ajax提交,并且我知道问题不在数据或Ajax请求中,因为它处理成功。唯一的问题是没有数据提交给我的数据库。在我更改为代码以将地址串连接到之前它是一个变量之前,我有这个工作。任何建议都会很棒!与php提交时出现sql错误
这里是PHP文件 UPDATE :::这是更新的PHP文件
<?php
require("dbinfo.php");
// Create connection
$conn = new mysqli('localhost', $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$name = $_POST['user_name'];
$street = $_POST['user_street'];
$city = $_POST['user_city'];
$state = $_POST['user_state'];
$country = $_POST['user_country'];
$zip = $_POST['user_zip'];
$address = $street.', '.$city.', '.$state.', '.$country.', '.$zip;
$shortAdd = $city.', '.$state.', '.$country;
$type = $_POST['user_color'];
$desc = $_POST['user_message'];
$request_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$address."&sensor=true";
$xml = simplexml_load_file($request_url) or die("url not loading");
$status = $xml->status;
if ($status=="OK") {
$lat = $xml->result->geometry->location->lat;
$lon = $xml->result->geometry->location->lng;
}
$sql = "INSERT INTO `markers` (`name`, `address`, `lat`, `lng`, `type`, `desc`)
VALUES (?, ?, ?, ?, ?, ?);";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssssss', $name, $shortAdd, $lat, $lon, $type, $desc);
$stmt->execute();
$conn->close();
?>
虽然docliving的答案是正确的,请采取额外的步骤和使用准备好的语句。没有它,您的代码很容易受到SQL注入攻击。只需稍作更改即可将其转换为使用准备好的语句。这里是如何做到这一点与mysqli:
$sql = "INSERT INTO `markers` (`name`, `address`, `lat`, `lng`, `type`, `desc`)
VALUES (?, ?, ?, ?, ?, ?);";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssssss', $name, $shortAdd, $lat, $lon, $type, $desc);
$stmt->execute();
之后似乎仍然没有工作。 –
@CollinMcCabe我认为你有另一个问题,如果它不工作与docliving的代码。矿山应该以同样的方式工作。 –
仅供参考,此网站为globalcandlelight.com,当您点击蜡烛时,表格会显示出来。它似乎工作,但没有新的标记后来出现。从数据库中拉出的标记正在工作 –
当@MySelfBoy写道:
任务后,你必须执行SQL语句
他意味着你必须执行你的查询
$sql = "INSERT INTO `markers` (`name`, `address`, `lat`, `lng`, `type`, `desc`)
VALUES ('$name', '$shortAdd', '$lat', '$lon', '$type', '$desc');";
下面的指令:
$conn->query($sql);
注:我仍然不容作出评论,所以我在这里张贴。
在我添加了 –
你可以告诉我们的错误,如果有的话? – Ronald
没有错误?它会经过并且按钮被单击时提交表单,但mySQL数据库之后没有新表。 –
您是否执行了SQL语句?我注意到没有提交或$ sql-> query() – Ronald