php中的查询不起作用

时间:2015-03-16 18:10:19

标签: php mysql

我对php和mysql不是很有经验。计划是创建一个文本框,在这个文本框中你可以写任何你想要的东西。然后文本框中的文本将更新为数据库。

它说错误在这一行内:

$sql = "UPDATE members SET tekst='$_POST['chat']' WHERE id='$_SESSION['id']'";

这一行在下一个代码中:

<?php
    error_reporting(0);
    session_start();

    if(!session_is_registered(gebruikersnaam))
        {
            header("location:form.php");
        }
?>

<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        $servername = "mysql.hostfree.nl";
        $username = "u411684910_info";
        $password = "rsg2015";
        $dbname = "u411684910_note";

        $conn = mysql_connect($servername, $username, $password, $dbname);

        $sql = "UPDATE members SET tekst='$_POST['chat']' WHERE id='$_SESSION['id']'";

        if (!$conn) 
        {
            die("Connection failed: " . mysql_connect_error());
        }

        if (mysqli_query($conn, $sql))
        {
            echo "New record created successfully";
            echo $_SESSION["id"];
        } 

        else 
        {
            echo "Error: " . $sql . "<br>" . mysql_error($conn);
        }

        mysql_close($conn);

    }
    else
    {
?>
        <form action="succes.php" method="POST">
            <input type="text" name="chat">
            <input type="submit" value="Submit">
        </form>
<?php
    }   
?>

提前致谢,

Gyon

4 个答案:

答案 0 :(得分:0)

我认为你应该在变量中加入以下值

 $session = mysqli_real_escape_string($_SESSION["id"]);
 $chat = mysqli_real_escape_string($_POST['chat']);

然后查询

$sql = "UPDATE members SET tekst='$chat' WHERE id='$session'";

答案 1 :(得分:0)

不要使用mysql_query。它被弃用了。 但试试这个:

$chat = mysql_real_escape_string($_POST['chat']);
$id = $_SESSION['id'];
$sql = "UPDATE members SET tekst = '$chat' WHERE id = '$id'";

答案 2 :(得分:0)

Gyon,

看来问题确实存在以下几行:

$ sql =&#34;更新成员SET tekst =&#39; $ _ POST [&#39; chat&#39;]&#39; WHERE id =&#39; $ _ SESSION [&#39; id&#39;]&#39;&#34;;

引号的问题:

tekst='$_POST['chat']' WHERE id='$_SESSION['id']'

您需要将其更改为以下内容:

$sql = 'UPDATE members SET tekst="$_POST['chat']" WHERE id="$_SESSION['id']"';

或者,我建议您拥有以下内容:

$ chat = $ _POST [&#39; chat&#39;];

$ sessionId = $ _SESSION [&#39; id&#39;];

$ sql =&#34;更新成员SET tekst =&#39; $ chat&#39; WHERE id =&#39; $ sessionId&#39;&#34;;

答案 3 :(得分:0)

您的代码中存在许多需要提及的差异,但首先要做的事情。记住你的引号。

"UPDATE members SET tekst='".$_POST['chat']."' WHERE id='".$_SESSION['id']."'";

在文本编辑器中,这看起来更具可读性。

正如其他人所说,不再使用 mysql扩展名。

使用更强更安全的Mysqli或PDO,因为它们具有转义功能,PDO会为您转义字符串。