如何创建包含sql的新php文件

时间:2015-06-08 19:08:01

标签: php mysql

我想动态创建一个新的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 '"' "

我很困惑,我需要你的帮助。

3 个答案:

答案 0 :(得分:1)

你最初应该使用“而不是',然后在字符串中使用你想要的另一个”。在示例中,您的字符串已在第二个字符串中结束。所以其余的都是语法错误。您也可以使用双引号。

这些链接中有更多信息:

Escaping quotation marks in PHP

How to escape strings in SQL Server using PHP?

答案 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 \“”; //我喜欢“苹果”