[英]How to Store multidimensional array into mysql using PHP
我創建了一個名為“test”的數據庫,並創建了一個名為“biodata”的表。 我在biodata表中創建了名為“Name”“Age”和“Description”的3列。 現在如何將我的數組結果存儲到每一列。
以下是完整的代碼......
<?php
$ip = "localhost";
$username = "root";
$password = "";
$dbname = "test";
$res = mysql_connect($ip,$username,$password);
if(!$res)
{
echo "DB Connection Failed.";
exit;
}
if(!mysql_select_db("test"))
{
echo "NOT SELECTED";
exit;
}
$company = array(
'Record1'=>array('Shabbir',26,'Designer'),
'Record2'=>array('Burhan',24,'Architecture'),
'Record3'=>array('Huzeifa',20,'Accountant'),
);
foreach ($company as $employees=>$details){
echo '<strong>'.$employees.'</strong><br>';
foreach($details as $employeeinfo){
echo $employeeinfo.'<br>';
}
}
$sql = "INSERT INTO biodata (Name, Age, Description) VALUES ($employeeinfo[0], $employeeinfo[1], '$employeeinfo[2]')";
mysql_query($sql);
?>
您的mysql_query
假設在您的foreach
語句中...您還需要因SQL Injection
而清理數據
你也不需要2個foreach
聲明......
更正
foreach ($company as $employees =>$details){
echo '<strong>'.$employees.' - OK</strong><br>';
mysql_query(sprintf($sql,mysql_real_escape_string($details[0]),mysql_real_escape_string($details[1]),mysql_real_escape_string($details[2])));
}
全文安排
$ip = "localhost";
$username = "root";
$password = "";
$dbname = "test";
$res = mysql_connect($ip,$username,$password);
$sql = "INSERT INTO biodata (Name, Age, Description) VALUES ('%s', '%d', '%s')";
$company = array(
'Record1'=>array('Shabbir',26,'Designer'),
'Record2'=>array('Burhan',24,'Architecture'),
'Record3'=>array('Huzeifa',20,'Accountant'),
);
if(!$res)
{
echo "DB Connection Failed.";
exit;
}
if(!mysql_select_db("test"))
{
echo "NOT SELECTED";
exit;
}
foreach ($company as $employees =>$details){
echo '<strong>'.$employees.' - OK</strong><br>';
mysql_query(sprintf($sql,mysql_real_escape_string($details[0]),mysql_real_escape_string($details[1]),mysql_real_escape_string($details[2])));
}
旁注。 無論循環有多小(迭代次數少)都不要在其中放置查詢。 而是僅使用循環來構造包含所有數據的一個復雜查詢,然后在循環外執行查詢。
編輯:您可以在循環中構造的查詢示例。
INSERT INTO table
(name, age, position)
VALUES
('Shabbir', 26, 'Designer'),
('Burhan', 24, 'Architecture'),
('Huzeifa', 20, 'Accountant');
你的SQL查詢只是在錯誤的地方:
foreach ($company as $employees=>$details)
{
echo '<strong>'.$employees.'</strong><br>';
foreach($details as $employeeinfo)
{
echo $employeeinfo.'<br>';
}
$sql = "INSERT INTO biodata (Name, Age, Description) VALUES ($details[0], $details[1], '$details[2]')";
mysql_query($sql);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.