我想动态创建一个新的php文件。在新文件里面我想要我的SQL查询。这是我的代码
$myfile = "".$file.".php"; // or .php
//echo $myFile;
$fh = fopen($myfile, 'w'); // or die("error");
$stringData = '<?php
$sql = "SELECT * FROM users, epixeir WHERE users.user = ".$_SESSION["user"]." AND user.pass = ".$_SESSION["pass"]." ;";
$result = $conn->query($sql);
?>
';
fwrite($fh, $stringData);
在新文件$ myfile中有一个"Notice: Trying to get property of non-object".
如果我将其编辑为'“。$ _ SESSION [”user“]”'工作正常,但我想以恐怖的方式进行。 所以,如果我写上面的代码,如
$myfile = "".$file.".php"; // or .php
//echo $myFile;
$fh = fopen($myfile, 'w'); // or die("error");
$stringData = '<?php
$sql = "SELECT * FROM users, epixeir WHERE users.user = '".$_SESSION["user"]."' AND user.pass = '".$_SESSION["pass"]."' ;";
//$sql = "SELECT * FROM users, epixeir WHERE users.user = '".$_SESSION['user']."' AND user.pass = '".$_SESSION['pass']."' ;";
$result = $conn->query($sql);
?>
';
fwrite($fh, $stringData);
然后我收到"Parse error: syntax error, unexpected '"' "
我很困惑,我需要你的帮助。
答案 0 :(得分:1)
你最初应该使用“而不是',然后在字符串中使用你想要的另一个”。在示例中,您的字符串已在第二个字符串中结束。所以其余的都是语法错误。您也可以使用双引号。
这些链接中有更多信息:
答案 1 :(得分:0)
试试这个......
$ sql =“SELECT * FROM users,epixeir WHERE users.user ='”。$ _ SESSION ['user']。“'AND user.pass ='”。$ _ SESSION ['pass']。“'” ;
答案 2 :(得分:0)
'是字面意思 “已处理
如果你使用'内部'开始字符串需要转义。 如果你使用“,内部”需要转义。
如果使用',则不会处理内部变量,并且您的字符串将接收变量作为文字文本。
如果使用“字符串中的变量将在字符串被置于变量之前更改为值。
您可以在需要文字的字符前使用\来转义字符。
示例:
$ fruit ='apple';
$ ex1 =“我喜欢$ fruit”; //我喜欢苹果
$ ex2 ='我喜欢$ fruit'; //我喜欢$ fruit
或逃避特殊字符:
$ ex3 =“我喜欢\ $ fruit”; //我喜欢$ fruit
$ ex4 =“我喜欢\”$ fruit \“”; //我喜欢“苹果”