php - while 循环中的 mysql_query

标签 php database mysql loops

我正在尝试执行 我在这种页面中有一个 html 表单:

Name: <input type="text" id="namebox" value="" name="fields[]" /> <br />
Position: <input type="text" id="positionbox" value="" name="fields[]" /> <br />

<input type="hidden" name="createcard">     
<input type="submit" value="Create">

.. 和其他 3 个字段。我通过 POST 将这 5 个表单字段传递到文件 process.php,该文件具有以下功能,可将数组元素插入 mysql 数据库。

if(isset($_POST['createcard'])){
    $this->procCreateCardtheme1();
..
..

    function procCreateCardtheme1(){
    global $session;

            $cardData = $_POST['fields'];
            $username=$session->username;
            $sno=1;
            echo count($cardData);
            while($sno < count($cardData))
            {
             $v=$cardData[$sno];
             echo $v;
             mysql_query("INSERT INTO carddata VALUES ('$username', $sno, '$v', 1)");
             $sno++;
            }

现在,上面的 echo 语句返回预期的输出,即五个左右的字段。但是 mysql_query 只执行一次。它只存储数据库中的第一个条目,仅此而已。即使重新提交表格也无济于事。它只是存储在数据库中的一个条目。 有什么想法吗?

最佳答案

carddata 表中的username 是否有唯一约束?这将导致第二次插入失败。

要调试它,您应该在程序中添加一些错误检查:

mysql_query("INSERT INTO carddata VALUES ('$username', $sno, '$v', 1)")
    or trigger_error(mysql_error());

您可能还需要使用 mysql_real_escape_string如果字符串数据可以包含引号,以避免语法错误或可能的 SQL 注入(inject)漏洞。

关于php - while 循环中的 mysql_query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4018543/

相关文章:

phpMyEdit 登录失败?

javascript - 如何在ajax中使用formdata发送字符串数据

java - 为什么在尝试对 ResultSet 中检索到的列的值求和时出现错误?

java - 我如何检查我的 sqlite 表中是否有数据?

sql - 使用 PostgreSQL 中的查询结果更新列

php - 如何在 mysql 中使用 firebase token ?

php - 问题 Integrity constraint violation : 1048 Column

php - 我如何在 ubuntu 中将 PDT 与 eclipse 关联/使用?terr

SQL查询连接问题

mysql - 如何使用 WHERE 语句和 COUNT(*) = 1 选择行