2015-09-18 38 views
2

你可以让我知道我怎么可以在MySQL中插入一个索引数组到表中?在这个片段我需要插入阵列物品进入data插入索引数组到一个库中的Mysql

$data = [5555,22,102858,12,.554,88888,99999999,12,1.5]; 

$temtbl = "CREATE TEMPORARY TABLE IF NOT EXISTS `dataTable` (
      `data` decimal(14,2) DEFAULT 100   
     ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;"; 
$conn->query($temtbl); 

$insertTotbl= "INSERT INTO `dataTable`(`data`); 

$conn->query($insertTotbl); 

Update

$row =[]; 
$query5 = "SELECT * FROM `dataTable`" ; 
$results = $conn->query($query5); 
if ($results) { 
    $row = $results->fetch_array(MYSQLI_NUM); 
    $row = array_map('floatval', $row); 

} 
$conn->close(); 
echo json_encode($row); 
+0

你想插入单场全阵列式?或者你是否想要将数组的每个条目作为新行插入到表中? (顺便说一句,你错过了关闭引号在该片段) – Barranka

+0

感谢Barranka,是的,我想插入整个阵列在一个单一的字段 –

回答

2

一个简单的方法来做到这一点:

$data = [5555,22,102858,12,.554,88888,99999999,12,1.5]; 

$temtbl = "CREATE TEMPORARY TABLE IF NOT EXISTS `dataTable` (
      `data` decimal(14,2) DEFAULT 100   
     ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;"; 
$conn->query($temtbl); 

$insertTotbl= "INSERT INTO `dataTable`(`data`) VALUES (" . implode('),(', $data) . ")"; 

$conn->query($insertTotbl); 

update

第二部分:

$nums = []; 
$query5 = "SELECT * FROM `dataTable`" ; 
$results = $conn->query($query5); 
while ($row = $results->fetch_array()) { 
    $nums[] = floatval($row[0]); 
} 
$conn->close(); 
echo json_encode(nums); 
+0

谢谢samlev,你可以看看更新?当我尝试获取更新代码的数据时,我只在页面上获得NULL –

+0

更新了第二部分 – samlev

+0

现在感谢我收到此错误致命错误:调用成员函数fetch_array() C:\ wamp \ www \ Shahab \ index.php on line 25' –

0

你可以收藏起来之前serialize它:

<?php 
$data = [5555,22,102858,12,.554,88888,99999999,12,1.5]; 

$foo = serialize($data); 

var_dump($foo); // Outputs: a:9:{i:0;i:5555;i:1;i:22;i:2;i:102858;i:3;i:12;i:4;d:0.5540000000000000479616346638067625463008880615234375;i:5;i:88888;i:6;i:99999999;i:7;i:12;i:8;d:1.5;} 

在这一点上,你可以存储$foo在数据库中的字符串。当您查询的数据,你可以unserialize它获取数组回:

$bar = unserialize($foo); 

var_dump($bar); //Outputs the array. 
?> 
+0

感谢HPierce,我怎样才能将序列化数据插入表? –

+0

只是一个标准的MySQL查询:'INSERT INTO dataTable VALUES($ serializedData)'。你发布的例子看起来很好。如果你需要我提供一个完整的例子,我想我可以做到这一点。让我知道。 – HPierce

+0

我做到了,但仍然获得NULL! –

0

试试这个:

foreach($data as $val) 
{ 
$insertTotbl= "INSERT INTO `dataTable`(`data`) VALUES ('".$val."') "; 
$conn->query($insertTotbl); 
}