php - 需要创建一个 PHP 循环(多次失败后不知道如何继续)

标签 php mysql sql loops

很简单,我需要将数字 1 替换为 2,然后替换为 3,依此类推 32 次。我知道如何创建简单的 PHP 循环和所有内容,但希望保持“干净”,以便你们更容易帮助我。

感谢您为我提供的任何帮助。

<?php
  $con = mysql_connect("localhost","user","pass");
  if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }

  mysql_select_db("mbbcom1_rfhl", $con);

  $sql="UPDATE `mbbcom1_rfhl`.`_statbu`
  SET gp= gp + '$_POST[gp1]', g= g + '$_POST[g1]', a= a + '$_POST[a1]', shot= shot + '$_POST[s1]', pm= pm + '$_POST[pm1]', ppg= ppg + '$_POST[ppg1]', shg= shg + '$_POST[shg1]', bs= bs + '$_POST[blk1]', gwg= gwg + '$_POST[gwg1]', sog= sog + '$_POST[sog1]', soa= soa + '$_POST[soa1]', pim= pim + '$_POST[pim1]' WHERE `season` =9 AND `_statbu`.`player_id` = 1";
  if (!mysql_query($sql,$con))
    {
    die('Error: ' . mysql_error());
    }
  mysql_close($con)
  ?>

所以为了清楚起见,我需要下一个循环做同样的事情,但是使用 '$_POST[gp2]', g= g + '$_POST[g2]' ....ect

再次感谢您

最佳答案

哇,您需要查找 SQL INJECTION。这段代码不、不、不安全。您至少需要对所有已发布的数据执行 mysql_real_escape_string() (下面的示例)。

关于如何循环。如果这都是更新同一个表,而您:

//do your connection and db select here
for( $i=1; $i <= 32; $i++ ) {
    $sql = "gp='".mysql_real_escape_string($_POST["gp{$i}"])."'...
    //mysql_query() here
}
//mysql_close() here

如果您希望一个查询无法破坏其他 31 个查询,或者无论剩下多少个查询,您只需在 mysql_query 上执行 die() 即可。否则,您可以更优雅地失败并忽略它,但给自己留言。

如果有 PDO,您可能还想研究一下它,因为它使用起来更简单。

关于php - 需要创建一个 PHP 循环(多次失败后不知道如何继续),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13032302/

相关文章:

c# - 无法插入到远程数据库 C#

mysql - MySQL如何合并连接表的行数,包括0?

php - 使用表单外的按钮提交表单并触发 jQuery 验证

php - 如何使用 Adminer 导出数据库?

php - 反混淆 PHP 脚本 (php obfuscator 1.4)

mysql - InnoDB "The Table is Full"错误

sql - 杀死mysqld进程

java.sql.Date 到 joda 时间转换

mysql - 从表中选择 SUM 和唯一值的最佳方法

php - PHPMailer 中的多个图像附件