我有以下数组要存储在我的数据库中...
$insData = array(
'uid' => $fbme['id'],
'first_name' => $fbme['first_name'],
'last_name' => $fbme['last_name'],
'email' => isset($fbme['email']) ? $fbme['email'] : '',
'link' => $fbme['link'],
'affiliations' => $networks,
'birthday' => $info[0]['birthday_date'],
'current_location' => isset($fbme['location']['name']) ? $fbme['location']['name'] : '',
'education_history' => $education,
'work' => $workInfo,
'hometown_location' => isset($fbme['hometown']['name']) ? $fbme['hometown']['name'] : '',
'interests' => $info[0]['interests'],
'locale' => $info[0]['locale'],
'movies' => $movies,
'music' => $music,
'political' => $info[0]['political'],
'relationship_status' => $info[0]['relationship_status'],
'sex' => isset($fbme['gender']) ? $fbme['gender'] : '',
'tv' => $television,
'status' => '0',
'created' => $now,
'updated' => $now,
);
我已经尝试在 google 上搜索如何执行此操作,我所能找到的只是说明我的数组需要在插入表之前进行拆分的信息。这个对吗?抱歉天真,对php很陌生。
最佳答案
您不能将数组直接插入到 MySQL,因为 MySQL 不理解 PHP 数据类型。 MySQL 只理解 SQL。因此,要将数组插入 MySQL 数据库,您必须将其转换为 SQL 语句。这可以手动完成,也可以由库完成。输出应该是 INSERT
语句。
Update for PHP7
Since PHP 5.5
mysql_real_escape_string
has been deprecated and as of PHP7 it has been removed. See: php.net's documentation on the new procedure.
原答案:
这是一个标准的 MySQL 插入语句。
INSERT INTO TABLE1(COLUMN1, COLUMN2, ....) VALUES (VALUE1, VALUE2..)
如果您有一个名称为 fbdata
的表,其中的列显示在数组的键中,您可以使用这个小片段插入。这是您的数组如何转换为该语句的方式。
$columns = implode(", ",array_keys($insData));
$link = mysqli_connect($url, $user, $pass,$db);
$escaped_values = array_map(array($link, 'real_escape_string'), array_values($insData));
$values = implode("', '", $escaped_values);
$sql = "INSERT INTO `fbdata`($columns) VALUES ('$values')";
关于php - 使用 PHP 将数组插入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10054633/