我对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
答案 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会为您转义字符串。