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

时间:2013-02-20 03:36:01

标签: php sql

<?

$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('),但查询无效。

任何人都可以帮助我,谢谢

2 个答案:

答案 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);