SQL没有';尝试传递数组时不会更新


SQL doesn't update when trying to pass array

我正在尝试在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的旧符号。

如果仔细查看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

您的逗号和括号未组织

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