我正在尝试更新数据库中的一行,但它没有运行。
下面是我从ajax调用中获取值的当前脚本。 我检查了电话,它正在发送正确的信息。 知道我在脚本顶部有连接值,但在这里没有包含它们。
// Opens a connection to a MySQL server
$connection = mysql_connect($host, $username, $password);
if (!$connection) {
die("Not connected : " . mysql_error());
} // Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die("Can\'t use db : " . mysql_error());
}
// Store INFORMATION
$name = $_POST['name'];
$website = $_POST['website'];
$address = $_POST['address'];
$request_url = $base_url . "&q=" . urlencode($address);
$csv = file_get_contents($request_url) or die("url not loading");
$csvSplit = split(",", $csv);
$status = $csvSplit[0];
$lat = $csvSplit[2];
$lng = $csvSplit[3];
$state = $_POST['state'];
$ident = $_POST['ident'];
$query = "UPDATE markers SET name = '".$name."', website = '".$website."',address = '".$address."',lat = '".$lat."',lng = '".$lng."',state = '".$state."'WHERE id = '" . $ident . "'";
mysql_query($query) or die(mysql_error());
?>
我还是很新,有人可以解释为什么它不起作用吗?
答案 0 :(得分:2)
你应该在这个引号中加上名称,网站等字段名称:` 而且你应该只在单词之间使用一个空格,并且可以在WHERE之前添加一个空格。
答案 1 :(得分:1)
你需要在'where'之前添加空格
答案 2 :(得分:0)
如果您的id
字段是一个数字,则不应引用您要比较的值,此处:
WHERE id = '" . $ident . "'";
这样做:
WHERE id = " . $ident;
一个经常被忽视的测试,让您的脚本回显出正在运行的实际查询,然后获取该查询字符串并直接针对数据库服务器运行 - 在您的情况下,在phpMyAdmin中针对您的MySQL服务器。