<?
$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文件时出现此错误:
解析错误:语法错误,意外'{'in 第77行/home/#/public_html/write.php
我尝试从{location}和{live}周围移除Apostrophes('),但查询无效。
任何人都可以帮助我,谢谢
答案 0 :(得分: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);
?>
此外,这仍然无法在另一端编译,您将需要转义&#34; $&#34;你正在使用的所有变量(如\ $ con和\ $ live)
(代码未经测试)
要解决您的实际问题,请尝试以下方法:
mysql_query("UPDATE order SET location=\'{$location}\' WHERE live=\'{$live}\'");
(逃避引号)
答案 1 :(得分:0)
你可以试试这个:
mysql_query("UPDATE order SET location=".$location." WHERE live=".$live);