php foreach循环sql插入没有出现确认或错误消息

php foreach循环sql插入没有出现确认或错误消息,php,mysql,Php,Mysql,我刚刚开始学习php,我正在为学校做一个名为“dat501movie”的php mysql数据库。我创建了一个输入框,用户可以选择一个电影标题(每个电影标题的电影ID存储为选项值),然后创建了一个多选择框,用户可以选择多个项目(在本例中为DirectorID),其中DirectorFistName和DirectorLastName显示在显示框中,但DirectorID不显示(对于每个DirectorFirstName和DirectorLastName)存储为选项值 我想将MovieID和Dire

我刚刚开始学习php,我正在为学校做一个名为“dat501movie”的php mysql数据库。我创建了一个输入框,用户可以选择一个电影标题(每个电影标题的电影ID存储为选项值),然后创建了一个多选择框,用户可以选择多个项目(在本例中为DirectorID),其中DirectorFistName和DirectorLastName显示在显示框中,但DirectorID不显示(对于每个DirectorFirstName和DirectorLastName)存储为选项值

我想将MovieID和DirectorID都存储在一个连接表中,该表用于名为Director_movietable的Movie和Director表

但当我选择多个DirectorFirstName/DirectorLastName项目并按下输入按钮“add”时,不会出现确认或错误消息,告诉我数据是否已插入dat501movie数据库。当我检查我的phpmyadmin时,我看不到此数据库中的新值

如果有人能告诉我为什么我没有收到信息,为什么我的数据没有被插入数据库,我将不胜感激

下面是多重插入框的代码以及选择“添加”按钮时的代码

<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">



<tr>
<td>MovieTitle List </td>
<td> <Select name="Movie">
<option value=""></option>


 <?php
 mysql_select_db($dbname, $conn) or die ("Could not connect to database 1");

 $query="SELECT MovieID, MovieTitle from movietable";
 $result=mysql_query($query) or die ("could not insert data: ".mysql_error());

while ($row=mysql_fetch_array($result)){
$MovieTitle=$row["MovieTitle"];
$MovieID=$row["MovieID"];
echo "<option value=\"$MovieID\">
$MovieTitle
</option>";
}
?>
 </Select>
</td>
</tr>   


<tr>
<td>Director type List </td>
<td> <Select size="10" name="Director[]" multiple="multiple">
<option value=""></option>

<?php
mysql_select_db($dbname, $conn) or die ("Could not connect to    database     2");

$query="SELECT DirectorID,  DirectorFirstName, DirectorLastName from     directortable";
$result=mysql_query($query) or die ("could not insert data:   ".mysql_error());

while ($row=mysql_fetch_array($result)){
$DirectorFirstName=$row["DirectorFirstName"];
$DirectorLastName=$row["DirectorLastName"];
$DirectorID=$row["DirectorID"];
echo "<option value=\"$DirectorID\">
$DirectorFirstName
$DirectorLastName
</option>";
}

?>       

</Select>
</td>
</tr>  
               </table>  

              <input name="add" type="submit" id="add" value="Add Entry">
           </form>
           <?php
     if(isset($_POST['add']))
     {

        if(! get_magic_quotes_gpc() )
        {
           $MovieTitle = addslashes ($_POST['Movie']);
           $GenreName = addslashes ($_POST['Genre']);
           $ActorName = addslashes ($_POST['Actor']);
           $DirectorName = addslashes ($_POST['Director']);

        }
        else
        {
            $MovieTitle = $_POST['Movie'];
           $GenreName = $_POST['Genre'];
           $ActorName = $_POST['Actor'];
           $DirectorName = $_POST['Director'];

        }


 foreach ($DirectorName as $val){
 $sql = "INSERT INTO director_movietable( DirectorID, MovieID) Values      ('$val','$MovieTitle')";

        mysql_select_db('dat501movie');
        $retval = mysql_query( $sql, $conn ); //This actually runs the query

        if(! $retval )
        {
           die('Could not enter data into director_movie table: ' . mysql_error());
        }
        echo "Entered data successfully\n";
           }

第一步是回显您正在生成的
$sql
。我猜这是不正确的-看起来您正在添加到一个
DirectorID
列,该列可能是一个整数,但您使用的值来自
$\u POST['Director']
,我假设它是一个文本字段。@andrewsi在我看来它像一个数字字段。他的
中的选项是
$DirectorFirstName$DirectorLastName
如果您没有收到确认或错误消息,脚本可能会出现语法错误。请检查服务器上的PHP错误日志。请问您是否在每个服务器上使用db紧循环的迭代?sql注入,二阶,