用PHP更新SQL数据库

用PHP更新SQL数据库,php,sql,Php,Sql,在构建基于web的位置应用程序时,我一直在努力更新服务器上的SQL数据库 我已经能够运行此PHP文件成功地从SQL获取数据: <?php require("phpsqlajax_dbinfo.php"); function parseToXML($htmlStr) { $xmlStr=str_replace('<','&lt;',$htmlStr); $xmlStr=str_replace('>','&gt;',$xmlStr); $xmlStr=str

在构建基于web的位置应用程序时,我一直在努力更新服务器上的SQL数据库

我已经能够运行此PHP文件成功地从SQL获取数据:

<?php
require("phpsqlajax_dbinfo.php");
function parseToXML($htmlStr) 
{ 
$xmlStr=str_replace('<','&lt;',$htmlStr); 
$xmlStr=str_replace('>','&gt;',$xmlStr); 
$xmlStr=str_replace('"','&quot;',$xmlStr); 
$xmlStr=str_replace("'",'&#39;',$xmlStr); 
$xmlStr=str_replace("&",'&amp;',$xmlStr); 
return $xmlStr; 
} 
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $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());
}
// Select all the rows in the markers table
$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'name="' . parseToXML($row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}
// End XML file
echo '</markers>';
?>
但是,当我尝试使用此代码更新同一SQL时,它不起作用:

<?php
require("phpsqlajax_dbinfo.php");
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $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());
}
// Select all the rows in the markers table
$query = "UPDATE markers SET lat="32" WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}
?>
你能帮我找出我做错了什么吗

谢谢!
Gil.

看看您代码的这一部分:

$query = "UPDATE markers SET lat="32" WHERE 1";
您使用双引号打开了查询字符串,并在其中使用双引号引用lat值。Php认为开头的双引号已关闭。 要解决这个问题:使用单引号或转义内部双引号。见以下示例:

$query=更新标记集lat='32',其中1//以双引号开始,并在内部使用单引号

$query='更新标记集lat=32,其中1'//以单引号开始,并在内部使用双引号

$query=更新标记集lat=\32\其中1//以双引号开始,但转义内部双引号
我建议您选择第一个选项,因为MySQL喜欢字符串中的单引号。

请停止使用MySQL,开始使用mysqli或PDO,因为它将在PHP 7中删除。请定义它不起作用。我喜欢他们使用“无效查询:”。错误;他们的查询失败了,但是没有告诉我们他们得到的语法错误;另外请注意,您应该停止使用@来绕过任何错误。PHP是弱类型的,这意味着它即使出错也会继续运行,这会打开一个安全漏洞,特别是在sql连接中。换句话说,如果它出错,您应该强制脚本停止;不要隐瞒你的问题。在启动之前显示并修复它们如果可以,应该这样做。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO,谢谢Nija,事实上我的错误是把双QUTES!我真的很佩服你们的知识。我更喜欢编码而不是专业。