我的PHP页面没有保存数据

时间:2015-10-27 10:23:02

标签: php mysql store

我是PHP编程的新手,我试图创建一个PHP页面,其中有一个用于编写文本的框,例如,存储此信息并展示它。 ideia是用户打算在框中写入文本并在点击时发送"发送" MySQL将把信息存储在表和命令" atualizaPagina()"将显示添加的信息。

<!DOCTYPE html>
<?php

    require_once("enviar.php");

    if(!empty($_POST)){
        gravaTopico($_POST["mensagem"]);
    }
?>
<html>
    <head>
        <title>Teste em php</title>
    </head>
    <body>
        <?php

            atualizaPagina();
        ?>
        <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
            <textarea rows="10" cols="50" name="mensagem"></textarea>
            <input type="submit" value="Enviar" />
        </form>
    </body>
</html>

enviar.php文件在这里

<?php

    function gravaTopico($values){

        mysql_connect("localhost", "root", "Alabra%$") or die(mysql_error());

        mysql_select_db("ifscjr") or die(mysql_error());

        $strSQL = "INSERT INTO topicos(comentarios) VALUES($values)";

        mysql_query($strSQL) or die (mysql_error());

        mysql_close();
    }

    function atualizaPagina(){

        mysql_connect("localhost", "root", "Alabra%$") or die(mysql_error());

        mysql_select_db("ifscjr") or die(mysql_error());

        $strSQL = "SELECT * FROM topicos";

        $rs = mysql_query($strSQL);

        while($row = mysql_fetch_array($rs)){
            echo $row['comentarios'] . "<br />";
        }

        mysql_close();
    }

?>

2 个答案:

答案 0 :(得分:1)

尝试更改此内容:

$strSQL = "INSERT INTO topicos(comentarios) VALUES ('$values')";

答案 1 :(得分:0)

MuthaFury是对的。  但是,你还需要检查$ _POST ins不是空的,你需要检查$ _POST [&#34; mensagem&#34;]是否存在(!空($ _ POST)&amp;&amp; isset($ _ POST [ &#34; mensagem&#34;]))。 并且你需要使用mysql_real_escape_string从引号中转义输入字符串,因为如果你的$ _POST [&#34; mensagem&#34;]包含引号(&#39;)你的sql将被破坏。 代码示例:

$values = mysql_real_escape_string($values);
$strSQL = "INSERT INTO topicos(comentarios) VALUES('$values')";