PHP/SQL QUERY-语法错误,意外';{';但是删除后,查询将不起作用


PHP/SQL QUERY - syntax error, unexpected '{' But when removed the query doesn't work

<?
$string = '<?php 
$con = mysql_connect("localhost","#","#");
if (!$con)
  {
  die("Could not connect: " . mysql_error());
  }
$location = $_SERVER["REMOTE_ADDR"];
$live = "Scotland";
mysql_select_db("#", $con);
// Line 77 below
mysql_query("UPDATE order SET location='{$location}' WHERE live='{$live}'"); 
?>';

$my_file = 'data.php';
$handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file);
fwrite($handle, $string);
?>

当我尝试上面的代码时,我在尝试写入data.php文件时遇到了这个错误:

分析错误:语法错误,中出现意外的"{"/home/#/public_html/write.php,第77行

我已尝试从{location}和{live}周围删除撇号('(,但查询不起作用。

有人能帮我吗,谢谢

我假设您正在尝试制作某种自动代码生成脚本。

看来你已经遇到引号的问题了。

您似乎遇到的问题是,在生成字符串时解释变量,而不是在另一边。以下内容至少可以解决您遇到的一个问题:

<?php
$string = <<<EOT
<?php 
$con = mysql_connect("localhost","#","#");
if (!$con)
  {
  die("Could not connect: " . mysql_error());
  }
$location = '$_SERVER["REMOTE_ADDR"];
$live = "Scotland";
mysql_select_db("#", $con);
// Line 77 below
mysql_query("UPDATE order SET location='{$location}' WHERE live='{$live}'"); 
?>
EOT;
$my_file = 'data.php';
$handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file);
fwrite($handle, $string);
?>

此外,这仍然不会在另一端编译,你需要在你正在使用的所有变量上转义"$"(比如''$con和''$live(

(代码未经测试(

然而,要解决您的实际问题,请尝试以下操作:

mysql_query("UPDATE order SET location=''{$location}'' WHERE live=''{$live}''");

(转义引号(

你可以试试这个:

mysql_query("UPDATE order SET location=".$location." WHERE live=".$live);