尝试传递数组时SQL不会更新

时间:2013-02-07 12:13:59

标签: php mysql sql arrays session

我正在尝试在event.php中输入一些值并将它们存储在一个数组($mem)中。然后我将这个数组传递到另一个eventregister.php文件中,我将它插入MySQL表中。

在event.php文件中开始行:

<?php
session_start();
$slug = $_GET['slug'];
$sess_uid = $_SESSION['id'];
$sess_email = $_SESSION['email'];
$sess_name = $_SESSION['name'];
if(isset($_POST['submit'])&&$_POST['submit']=='register1')
    require_once('13/functions/eventregister.php');    
?>

<body>

    ...
    ...
    $result = mysql_query("SELECT * FROM event WHERE slug = '".$slug."'");
    if ($result == true){
        $row=mysql_fetch_assoc($result);
        $id=$row['id']; 
        }
    $_SESSION['eventid']=$id;
    $_SESSION['eventname']=$row['name'];
    $_SESSION['max_members']=$row['members'];

    php $mem=array_fill(0,$row['members'],'');?>
    <form action="" method="post">
    <?php for ($i=0;$i<$row['members']-1;$i++){
        echo '<label>TRYST ID of Member '.($i+1).' :</label>';
        echo '<input type="text" size="20" name="'.$mem[$i].'"><br>';
    }
    echo '<button type="submit" id="submit" value="Register" name="register1">Register</button>';?>
    </form>

我的eventregister.php文件:

<?php
session_start();
    foreach($_POST['mem'] as $key=>$value){
        $value=mysql_real_escape_string($value);
        if(strlen($value)==0)
            $value="Null";
    }

    $sess_uid = $_SESSION['id'];
    $sess_email = $_SESSION['email'];
    $sess_name = $_SESSION['name'];
    $e_id=$_SESSION['eventid'];
    $e_name=$_SESSION['eventname'];
    $e_max_mem=$_SESSION['max_members'];

    mysql_query("INSERT INTO eventregister(event_id,event_name,max_number) VALUES('".$e_id."','".$e_name."','".$e_max_mem."')");
    $url="events.php?slug=".$slug;
    header('Location: ' . $url);
    exit;
?>

页面没有显示任何错误,重定向正在工作,只是没有行在SQL中受到影响。我还在学习过程中,因此使用旧的PHP符号。

2 个答案:

答案 0 :(得分:1)

如果仔细查看INSERT语句,您会发现最后有一个逗号逗号。删除:

mysql_query("INSERT INTO eventregister(event_id,event_name,max_number) 
      VALUES('".$e_id."','".$e_name."','".$e_max_mem."')");

您还可以在服务器日志中看到MySQL错误。或者如果查询失败,请致电mysql_error以了解详情。

我也没有在任何地方看到mysql_connect

答案 1 :(得分:0)

您的逗号和括号未组织

mysql_query("INSERT INTO eventregister(event_id,event_name,max_number) VALUES('".$e_id."','".$e_name."','".$e_max_mem."')");