PHP foreach插入语句与数组的问题

时间:2011-04-09 06:30:18

标签: php mysql sql arrays loops

嘿伙计们,我正在学习php,我需要这样做

  $connection = mysql_open();
  $likes= array();
  foreach($likes as $like)
  {

  $insert3 = "insert into ProfileInterests " .
    "values ('$id', '$like', null)";
  $result3 = @ mysql_query ($insert3, $connection)
    or showerror();

  }
  mysql_close($connection)
    or showerror();

由于某些原因,这不起作用= /我不知道为什么。 $ likes是一个用户输入的数组。我需要它多次插入表中,直到数组中的所有内容都在。

编辑 我修复了我在foreach循环中关闭它的问题。 mysql_open是我自己的函数btw。

有什么想法吗?

5 个答案:

答案 0 :(得分:1)

对于一个$ likes,在您的示例中是一个空数组,我假设您在运行的代码中修复它。

第二个是你在循环运行的第一个时间关闭MySQL连接,这会阻止后续的MySQL查询运行。

答案 1 :(得分:0)

没有mysql_open

这样的功能

您可能需要mysql_connect

$likes变量也是空的。所以没有foreach迭代会执行。

答案 2 :(得分:0)

您在foreach循环中关闭连接。

答案 3 :(得分:0)

以下是插入数据的正确格式化代码......您可以使用它。

//数据库连接

$conn=mysql_connect(HOST,USER,PASS);
$link=mysql_select_db(DATABASE_NAME,$conn);

//插入数据的函数..其中 $ tableName 是表名和 $ valuesArray 用户输入数组

function insertData($tableName,$valuesArray) {

        $sqlInsert="";
        $sqlValues="";

        $arrayKeys = array_keys($valuesArray);
        for($i=0;$i < count($arrayKeys);$i++)
        {
            $sqlInsert .= $arrayKeys[$i].",";
            $sqlValues .= '"'.$valuesArray[$arrayKeys[$i]].'",';
        }

        if($sqlInsert != "")
        {
            $sqlInsert = substr($sqlInsert,0,strlen($sqlInsert)-1);
            $sqlValues = substr($sqlValues,0,strlen($sqlValues)-1);
        }

        $sSql = "INSERT INTO $tableName ($sqlInsert) VALUES ($sqlValues)";  
        $inser_general_result=mysql_query($sSql) or die(mysql_error());
        $lastID=mysql_insert_id();
        $_false="0";
        $_true="1";
        if(mysql_affected_rows()=='0')
        {
            return $_false;
        }
        else
        {
            return $lastID;
        }
    }

//功能结束

答案 4 :(得分:0)

虽然许多PHP新手(我自己包含)开始使用来自good ole'mysql_connect/query/etc.的数据库,但我不禁建议你研究一下PDO,PHP数据对象。根据您以前的知识和编程背景,可能会有更陡峭的学习曲线。但是,它更强大,可扩展等;我现在在我的所有生产代码数据库轮换和交易中使用PDO