我有一个包含$ player_ids的数组。以用户用来选择他的团队的形式获得阵列。然后,我使用$ player_ids数组查询数据库。
因此:

 if ( isset($_POST['submit']) ) {
    $player_ids = array_map('intval', $_REQUEST['players']);

    var_dump($player_ids);

    $query = 'SELECT `name`
        FROM `player_info`
        WHERE `player_id` IN (' . implode(',', $player_ids) . ')';

    $return_names = mysql_query($query) or die(mysql_error());

    while ( $row = mysql_fetch_assoc($return_names) ) {
        $selected[] = $row['name'];
    }

    var_dump($selected);


上面的代码正在工作,当我在浏览器中打开它时,得到此输出


现在,我想从数组$ selected中提取值(包含所选球员的姓名)并将其上传到数据库。我尝试这样做,如下所示:

foreach ($selected as $player){
    $sql = mysql_query('INSERT INTO `team`(`player_name`) VALUES ("$player")')
    or die(mysql_error());
    print ($player);
    echo'<br>';
`   }


我怀疑上面的代码是问题所在。执行以上代码时,数据库仅包含数组名称本身,而不包含数组的实际值。如下图所示:
    

如果有人能指出正确的方向,那么为什么将数组名而不是其值保存在数据库中,将不胜感激。

提前致谢。

最佳答案

您必须在字符串两边加上双引号,而不是单引号。在单引号字符串中,像$ player这样的变量不会被其解释为文本的值取代。

关于php - PHP-使用循环将数据上传到数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19209739/

10-11 02:48
查看更多