gpt4 book ai didi

php - 插入查询不适用于 phpexcel 脚本

转载 作者:搜寻专家 更新时间:2023-10-30 23:18:08 29 4
gpt4 key购买 nike

我正在使用 phpExcel 库将数据从 excel(csv) 文件导入到 mysql 数据中。除了下面的 mysql 插入查询是我的源代码之外,一切都工作正常。请在查看我的代码后让我知道问题出在哪里。我试过一个数组,但我也失败了。请查看我的 mysql 查询,让我知道在这个 PhpExcel 库中哪个查询会更好。提前致谢。

$objPHPExcel = PHPExcel_IOFactory::load("myfile.csv");
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$worksheetTitle = $worksheet->getTitle();
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$nrColumns = ord($highestColumn) - 64;
for ($row=2; $row<=$highestRow; $row++) {
$cell = $worksheet->getCellByColumnAndRow(3, $row)->getValue();
mysql_query("INSERT INTO myTableName (`title`) VALUES ('$cell')");
}
}

最佳答案

一方面,您没有检查 mysql_query 的结果。另一方面,在将它放入查询之前,您没有转义 $cell 。最后也是最重要的一点是,mysql_ 函数正在被弃用, future 将不再受支持。

您应该使用mysqli_ 函数或PDO相反,它会为您处理很多这样的事情。如果您使用 PDO,代码可能如下所示:

// open the db connection - code taken from PHP's PDO examples:
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}

// throw exceptions when queries fail instead of normal errors
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$dbh->beginTransaction();
try {
// your phpexcel code goes here

// prepare the query - only needs to be done once
$stmt = $dbh->prepare("INSERT INTO myTableName (`title`) VALUES (?)");

// insert each row
for ($row=2; $row<=$highestRow; $row++) {
$cell = $worksheet->getCellByColumnAndRow(3, $row)->getValue();

$stmt->execute(array($cell));
}
$dbh->commitTransaction();
} catch(Exception $E) {
$dbh->rollbackTransaction();
throw $E;
}

关于php - 插入查询不适用于 phpexcel 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10360489/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com