0

当我执行这段代码时,我只会在我的数据库中插入零。为什么?我能做些什么来解决这个问题?

<select class="date" name="year"> <option value="">Year</option>
<?php $i=1; while($i<=31) { ?>
<option value="<?php $i ?>"> <? echo $i; ?> </option>
<?php $i++; } ?> </select>

这是我的mysql代码:

$sql="INSERT INTO information ( Year ) 
VALUES ('$_POST[year]')";
4

2 回答 2

2
<select class="date" name="day"> <option value="">Day</option>
<?php $i=1; while($i<=31) { ?>
<option value="<?php echo $i; ?>"> <?php echo $i; ?> </option>
<?php $i++; } ?> </select>

始终使用<?php?>以便您的浏览器识别 PHP

还有,你的第一个<?php $i ?>

我将其更改为并在我更改为echo $i; 的同一行<? echo $i; ?> </option><?php echo $i; ?> </option>

它对我有用。

使用您的插入:

$sql="INSERT INTO information (COL_FOR_DAY) 
VALUES ('{$_POST['day']}')";
于 2012-12-20T22:34:12.380 回答
2

这里将如何成为您的代码

     <select class="date" name="year">
       <option value="">Year</option>
         <?php  for($i=1;$i<=31 ;$i++ ) { ?>
       <option value="<?php $i ?>"> <? echo $i; ?> </option>
         <?php } ?>
     </select>

编辑 :

    <input type ="submit" value =" submit me"/>
    <?php  if (isset($_POST['year']))  // check if isset the year
       {
       $year = $_POST['year']  ;
       } else {}



    $sql="INSERT INTO information ( Year ) VALUES ('".$year."')";
       ?>

编辑 2:您的代码是正确的,但您应该转义值以防止 sql 注入这样做

insert into ....
    VALUES
       ('mysql_real_escape_string($_POST[user])','mysql_real_escape_string($_POST[email])'.........
于 2012-12-20T22:37:03.813 回答