【问题标题】:Execute a query 4 times with a loop使用循环执行查询 4 ​​次
【发布时间】:2016-06-02 07:06:34
【问题描述】:

我想执行 4 次查询以将数据插入表中。变量$answerformat 和$feedbackformat 具有固定值,但$answer 和$format 的值会发生变化。

这是我目前所取得的成就:

 $answer=array('<p>ali<p>','<p>ali<p>','<p>ali<p>','<p>ali<p>');  
 $answerformat=1;
 $fraction=array('1.0000000','0.0000000','0.0000000','0.0000000');
 $feedbackformat=1;

 for($i=0;$i<=sizeof($answer);$i++){

 }

【问题讨论】:

  • 哪些值会被插入到数据库中?
  • $answer,$answerformat,$fraction,$feedbackformat
  • 请熟悉PHP的MySQL接口SQL语法和PDO或mysqli,并插入适当的查询。如果它不起作用,我们可以帮助您。还要确保了解 SQL 注入。

标签: php mysql loops


【解决方案1】:

您只需将查询放入循环中。您是否尝试过阅读有关mysqli_* 或PDO 的信息?

让我们以mysqli_* 扩展名为例。我们必须首先建立与您的数据库的连接,假设您还建立了用户权限、创建了数据库等:

$con = new mysqli("Host", "User", "Password", "Database"); /* REPLACE NECESSARY PARAMETERS INSIDE */

/* CHECK CONNECTION */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

然后,让我们继续循环并插入查询:

$answer = array('<p>ali<p>', '<p>ali<p>', '<p>ali<p>', '<p>ali<p>');  
$answerformat = 1;
$fraction = array('1.0000000', '0.0000000', '0.0000000', '0.0000000');
$feedbackformat = 1;

for($i = 0; $i < sizeof($answer); $i++){

    /* PREPARE YOUR INSERT QUERY BELOW; REPLACE NECESSARY TABLE NAME AND COLUMN NAME; */
    $stmt = $con->prepare("INSERT INTO yourTable (Column1, Column2, Column3, Column4) VALUES (?, ?, ?, ?)");
    $stmt->bind_param("ssss", $answer[$i], $answerformat, $fraction[$i], $feedbackformat); /* QUESTION MARKS IN YOUR INSERT QUERY WILL BE REPLACED WITH THESE FOUR VARIABLES; REPLACE OR REARRANGE PROPERLY THESE VARIABLES; s STANDS FOR STRINGS */
    $stmt->execute(); /* EXECUTE QUERY */
    $stmt->close(); /* CLOSE PREPARED STATEMENT */

}

必须在循环中删除 =,因为它将循环五 (5) 次而不是四 (4)。数组的索引总是从零 (0) 开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    相关资源
    最近更新 更多