需要创建一个PHP LOOP(不确定如何在多次失败后继续)

时间:2012-10-23 14:05:55

标签: php mysql sql loops

所以它很简单,我需要用2然后3替换数字1,依此类推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

再一次,谢谢

1 个答案:

答案 0 :(得分:2)

哇,你需要查找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上死()。否则你可以更优雅地失败并且忽略它,但给自己留言。

您可能还想查看PDO,因为它有点简单易用。