通过php将数组参数插入mysql

I followed some threads here, but I can't see what am I doing wrong:

$friends = array
(
        array("yaron","levi","yaron@gmail.com"),
        array("david","chohen","david@gmail.com"),
        array("michal","rubin","michal@gmail.com"),
        array("dafna","mishal","dafna@gmail.com"),
        array("tamar","mishal","tamar@gmail.com")
);

if(is_array($friends)){

    $sql = array();
    foreach( $friends as $row ) {
                $sql[] = '("'.mysql_real_escape_string($row['firstname']).'","'.mysql_real_escape_string($row['lastname']).'","'.mysql_real_escape_string($row['email']).'")';
    }
    mysql_query('INSERT INTO MyGuests (firstname,lastname,email) VALUES '.implode(',', $sql));



}

You will get undefined index error because your array has no index by firstname, lastname & so on.. Also enclose values by single quotes during imploding. This should help

if(is_array($friends)){
    $sql = array();
    foreach( $friends as $row ) {  
        $sql[] = mysql_real_escape_string($row[0]);
        $sql[] = mysql_real_escape_string($row[1]);
        $sql[] = mysql_real_escape_string($row[2]);
        $values = "'".implode("','", $sql)."'";
        mysql_query("INSERT INTO MyGuests (firstname,lastname,email) VALUES(".$values.")");
    }
}

change your friends array for:

$friends = array(
    array("firstname"=>"yaron", "lastname"=>"levi",  "email"=>"yaron@gmail.com"),
    array("firstname"=>"david", "lastname"=>"chohen","email"=>"david@gmail.com"),
    array("firstname"=>"michal","lastname"=>"rubin", "email"=>"michal@gmail.com"),
    array("firstname"=>"dafna", "lastname"=>"mishal","email"=>"dafna@gmail.com"),
    array("firstname"=>"tamar", "lastname"=>"mishal","email"=>"tamar@gmail.com")
);

With this change, your script will be work successfully!