我正在尝试将我公司的股票数据插入mysql数据库。我有四个类型如下的数组:
$lot_number = array(1, 2, 3, 4, 5);
$serial_begin = array(1, 51, 101, 151, 201);
$serial_last = array(50, 100, 150, 200, 250);
$identifier = array(FA2567, FA2568, FA2569, FA2570, FA2571);
我正在尝试如下构建数组数组:
$data = array($lot_number, $serial_begin, $serial_last, $identifier);
并使用带有以下脚本的PDO准备好的语句:
$stmt = $pdo->prepare("INSERT INTO shares_fclass
(lot_number, serial_begin, serial_last, identifier)
VALUES (?, ?, ?, ?)");
try {
$pdo->beginTransaction();
foreach ($data as $key => $lotnumber)
{
$stmt->execute($key);
}
$pdo->commit();
}catch (Exception $e){
$pdo->rollback();
throw $e;
}
我一整天都在尝试浏览网站以找到适当的现有答案,但未能找到答案。
我的问题是,是否有可能这样做,如果是,最好的方法是什么?
感谢您的期待。
这将在4个数组中获得正确的出现次数,并将它们放置在查询的正确片段中,只要在所有4个数组中总是出现相同数量的出现次数
$lot_number = array(1, 2, 3, 4, 5);
$serial_begin = array(1, 51, 101, 151, 201);
$serial_last = array(50, 100, 150, 200, 250);
$identifier = array('FA2567', 'FA2568', 'FA2569', 'FA2570', 'FA2571');
$stmt = $pdo->prepare("INSERT INTO shares_fclass
(lot_number, serial_begin, serial_last, identifier)
VALUES (?, ?, ?, ?)");
try {
$pdo->beginTransaction();
foreach ($lot_number as $key => $lotnumber) {
$stmt->execute([$lotnumber, $serial_begin[$key], $serial_last[$key] , $identifier[$key] ]);
}
$pdo->commit();
}catch (Exception $e){
$pdo->rollback();
throw $e;
}
您几乎在那里,只是您使用错误的参数执行查询。
而且,也不需要额外的$data
变量。
$lotNumber = [1, 2, 3, 4, 5];
$serialBegin = [1, 51, 101, 151, 201];
$serialLast = [50, 100, 150, 200, 250];
$identifier = ['FA2567', 'FA2568', 'FA2569', 'FA2570', 'FA2571'];
$stmt = $pdo->prepare("INSERT INTO shares_fclass
(lot_number, serial_begin, serial_last, identifier)
VALUES (?, ?, ?, ?)");
try {
$pdo->beginTransaction();
for ($i = 0; $i < count($lotNumber); $i++) {
$stmt->execute([
$lotNumber[$i],
$serialBegin[$i],
$serialLast[$i],
$identifier[$i]
]);
}
$pdo->commit();
} catch (Exception $e){
$pdo->rollback();
throw $e;
}