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

ある種の自動コード作成スクリプトを作成しようとしていると思います。

引用符の問題はすでに発生しているようです。

あなたが抱えていると思われる問題は、変数が反対側ではなく文字列の生成中に解釈されていることです。次のようなものは、少なくともあなたが抱えている問題の1つを解決するかもしれません:

<?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 に答える