为什么这个PHP mysqli_query()不起作用?

时间:2014-08-14 00:52:28

标签: php mysql sql mysqli

我已连接到数据库,并成功显示cont其中idmessage(第二段代码),因此我估算第一个mysqli_query()(一个说UPDATE)不起作用。

我希望用户在$_POST['message']中输入文字(这也是完美的,因为我已尝试过另一段代码)并显示它。

文本将发送到表单所在的同一PHP页面。但是,我只看到单元格中已有的东西作为占位符。任何帮助表示赞赏。

$message = stripslashes ($_POST ['message']);
mysqli_query ($con, "UPDATE edit SET cont=$message WHERE id='message'");

$done = 0;
$result = mysqli_query ($con, "SELECT * FROM edit");
while ($row = mysqli_fetch_array ($result))
{
    if ($row["id"] == "message" && $done == 0)
    {
        echo $row["cont"];
        $done = 1;
    }
}

3 个答案:

答案 0 :(得分:0)

确保$ con中的连接正确。 您还需要在单引号中包含$ message,因为它是一个字符串。

mysqli_query ($con, "UPDATE edit SET cont='$message' WHERE id='message'");

你到那儿的 id 非常有价值。这仅用于测试目的吗?

答案 1 :(得分:0)

从安全角度来看,

stripslashes()是不够的。也不存在将值插入SQL的任何类型的查询。请尝试准备好的声明......

$id = 'message';
$stmt = $con->prepare("UPDATE edit SET cont = ? WHERE id = ?");
$stmt->bind_param('ss', $_POST['message'], $id);
$stmt->execute();

答案 2 :(得分:0)

首先确保数据库连接$ con。它必须正确并使用“mysqli_error()”函数,如下所示:

<?php 

$message = stripslashes ($_POST ['message']);
mysqli_query ($con, "UPDATE edit SET cont='".$message."' WHERE id='message'") or  die(mysqli_error($con));

?>