首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql查询只放入一条记录而不是多条记录?

sql查询只放入一条记录而不是多条记录?
EN

Stack Overflow用户
提问于 2014-03-17 21:53:04
回答 2查看 60关注 0票数 0

您好,我只是想做这个php/sql查询,我试图输入一个以上的记录在同一时间使用此代码,但它只输入一个,而不是其他…

代码:

代码语言:javascript
复制
    <?php
        $results=$_POST['results'];
        $day=$_POST['day'];
        $lmID=$_POST['lmID'];
        $cID=$_POST['cID'];
        $count_cID = count($_POST['cID']);

        for($i=0;$i<$count_cID ;$i++){
        $_results = mysql_escape_string($results[$i]);
        $_day = mysql_escape_string($day[$i]);
        $_lmID = mysql_escape_string($lmID[$i]);
        $_cID = mysql_escape_string($cID[$i]);

        $sql = mysql_query("INSERT INTO Club (results, day, lmID, cID) VALUES ('$_results', '$_day', '$_lmID', '$_cID')");
        $result = mysql_query($sql);
    }

    ?>

HTML表单:

代码语言:javascript
复制
            League Match ID:
            <?php echo $lmID;?> <input type="hidden" name="lmID[]" value="<?php echo $lmID; ?>" >
            Competitor ID:
            <?php echo $cID;?> <input type="hidden" name="cID[]" value="<?php echo $cID; ?>" >
            Result:
            <input type="text" name="results[]">
            Day:
            <input type="text" name="day[]">

            <input type="submit" name="submit">
        </form>
EN

回答 2

Stack Overflow用户

发布于 2014-03-17 22:02:14

代码语言:javascript
复制
$sql = mysql_query("INSERT INTO Club (results, day, lmID, cID) VALUES ('$_results', '$_day', '$_lmID', '$_cID')");
$result = mysql_query($sql);

应该是:

代码语言:javascript
复制
$sql = <<<EOF
INSERT INTO Club (results, day, lmID, cID) 
VALUES ('{$_results}', '{$_day}', '{$_lmID}', '{$_cID}')
EOF;
$result = mysql_query($sql);

正如在其他评论中提到的,请不要使用mysql_数据库函数-使用PDO或mysqli_函数。mysql_query被弃用(这是有充分理由的)。对于其他库,您的语句似乎也是PREPARE后跟EXECUTE的候选语句。例如,使用PDO...

代码语言:javascript
复制
$sql = <<<EOF
INSERT INTO Club (results, day, lmID, cID) 
VALUES (?, ?, ?, ?)
EOF;
$stmt = $db->prepare( $sql);

for($i=0;$i<$count_cID ;$i++){
    // escape your data here - you might not need to with PDO
    $result = $stmt->execute( array( $_results, $day, $_lmID, $_cID));
}
票数 0
EN

Stack Overflow用户

发布于 2014-03-17 22:05:45

确保$count_cID大于1(1)。但看起来并不是这样。我之所以提到这个变量,是因为您正在将$i与它进行比较,并且在您的for循环中,如果它不大于1,那么循环内容将只执行一次,因为在第二次尝试时,条件将不再有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22456171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档