0
<?

$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 文件时出现此错误:

解析错误:语法错误,第 77 行 /home/#/public_html/write.php 中的意外“{”

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

谁能帮我解决这个问题,谢谢

4

2 回答 2

3

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

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

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

<?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}\'");

(转义引号)

于 2013-02-20T04:01:11.230 回答
0

你可以试试这个:

mysql_query("UPDATE order SET location=".$location." WHERE live=".$live);
于 2013-02-20T03:39:24.423 回答