【问题标题】:Troubles sending textarea data to a database将 textarea 数据发送到数据库时出现问题
【发布时间】:2014-03-11 11:04:08
【问题描述】:

我正在尝试创建一个将 textarea 数据发送到数据库的 php 表单。数据库表 uploads 有 3 个需要的数据项:

  • user_id
  • 类别
  • 内容

HTML:

<form id="myform" action="php/savetext.php" method="POST" enctype="multipart/form-data">

  <p><strong>Add your story here.</strong></p>

        <input type="hidden" name="fbid" id="fbid">
        <input type="hidden" name="category" id="category">

        <textarea cols="50" rows="10" name="usertext" id="storyArea"></textarea>
        <input type="submit" name="submit" value="Saada" />

        <script type="text/javascript">

            $( "#fbid" ).val( "sdf88d99sd" );
            $( "#category" ).val( "texts" );    

        </script>                       
</form>

保存文本.php:

include_once('config.php');

if (isset($_POST['user_id']) && isset($_POST['category']) && isset($_POST['usertext'])) {

    $user_id = mysql_real_escape_string($_POST['fbid']);
    $category = mysql_real_escape_string($_POST['category']);
    $content = mysql_real_escape_string($_POST['usertext']);
    addUser($user_id, $category, $content);
}

else {
    echo 'Upload failed! Try again.';
}

function addUser($user_id, $category, $content) {
    $query = "SELECT id FROM uploads WHERE user_id = '$fbid' LIMIT 1";
    $result = mysql_query($query);
    $rows = mysql_num_rows($result);
    if ($rows > 0) {
        $query = "UPDATE uploads SET user_id = '$user_id', category = '$category' WHERE content = '$content'";
    }
    else {
        $query = "INSERT INTO uploads (user_id, category, content) VALUES ('$user_id', '$category', '$content')";
    }
    mysql_query($query);
    echo 'Upload was succesful. Thank you!';

}

但这不起作用。关于如何纠正这个问题的任何想法?

【问题讨论】:

  • 更新应该在 where 条件而不是长文本中使用主键。
  • 第二件事该函数必须有权访问连接字符串!!
  • 你在使用文本区域的任何编辑器
  • 忠告...不要使用 PHP mysql_* 函数,它们已被弃用,您应该使用 PDO 或 mysqli 代替它们。
  • @Karthick Kumar Ganesh - 不对文本区域使用任何编辑器。

标签: javascript php html mysql forms


【解决方案1】:

请查看此代码,&lt;form&gt;&lt;/form&gt; 中没有名为 user_in 的字段

if (isset($_POST['fbid']) && isset($_POST['category']) && isset($_POST['usertext'])) {

    $user_id = mysql_real_escape_string($_POST['fbid']);
    $category = mysql_real_escape_string($_POST['category']);
    $content = mysql_real_escape_string($_POST['usertext']);
    addUser($user_id, $category, $content);
}

【讨论】:

  • 我完全错过了。现在插入的数据被保存到数据库中。也收到此错误:Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given on line 20。你知道是什么原因造成的吗?
  • 这是因为您的 $result 可能为 null 或为空
猜你喜欢
  • 1970-01-01
  • 2018-01-03
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-14
  • 1970-01-01
相关资源
最近更新 更多