它不会在数据库中插入值

时间:2012-04-01 20:52:31

标签: php mysql

我在下面有一个Javascript和表单代码:

<script> 

    var qnum = 1;

    function insertQuestion(form) {  

        var $tbody = $('#qandatbl > tbody'); 
        var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
        var $qid = $("<td class='qid'>" + qnum + "</td>");

    $tr.append($qid);
    $tbody.append($tr); 

    ++qnum;
    $("#questionNum").text(qnum);

    }

</script>

形式:

 <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post" >

<h1><?php echo $_SESSION['id'] ?></h1>

    <table id="qandatbl" align="center">
    <thead>
    <tr>
        <th class="qid">Question No</th>
    </tr>
    </thead>
    <tbody></tbody>
    </table>

    <p><input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" /></p>

    </form>

在PHP代码中,它会在表格中的每个表格行($ qid)中添加一个问号(qnum)。

问题是虽然我想在数据库中插入问题编号,但根本不这样做。如何使用INSERT VALUES在数据库中添加问题编号?它应该是数据库中每行1个问题编号。我还希望将SessionId($ _POST ['id'])插入数据库以及每一行。

以下是我目前拥有的php INSERT VALUES代码:

<?php

    session_start();

    $username="xxx";
    $password="xxx";
    $database="xxx";

    mysql_connect('localhost',$username,$password);

    mysql_select_db($database) or die( "Unable to select database");

      $insertquestion = array();


    $insertquestion[] = "' ". mysql_real_escape_string( $_POST['id'] ) . "' , ' ". mysql_real_escape_string( $_POST[$qid] ) . "'";

  $questionsql = "INSERT INTO Question (SessionId, QuestionId) 
  VALUES (" . implode('), (', $insertquestion) . ")";



mysql_query($questionsql);

mysql_close();

?>

编辑:

我已经包含了var_dump和mysql_error()之后出现的通知;

注意:未定义索引:第28行/Mobile_app/insertQuestion.php中的id

注意:未定义的变量:第28行的/Mobile_app/insertQuestion.php中的qid

注意:未定义的索引:在第28行的/Mobile_app/insertQuestion.php中 string(9)“'',''”

1 个答案:

答案 0 :(得分:1)

在开始使用数据库之前,您需要仔细检查您的javascript和html:目前我没有看到任何input元素的name属性为id所以在我看来,当你使用$_POST['id']时,你应该得到一个未定义变量的警告。这同样适用于$_POST[$qid]

除此之外,如果id应该是一个整数,我会把它转换为int而不引用它:

$insertquestion[] = (int) $_POST['id'] . ",". (int) $_POST[$qid];

如果它们都不应该是整数,我至少会在引号后删除前导空格。