【发布时间】:2015-09-07 21:34:03
【问题描述】:
PHP 代码 -:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$rows =0;
$fp = fopen("leave1.csv","r");
if($fp){
while(!feof($fp)){
$content = fgets($fp);
if($content) $rows++;
}
}
fclose($fp);
//echo $rows;
$_SESSION['rows'] = $rows;
?>
<?php
$row = 1;
$row1=0;
if (($handle = fopen("leave1.csv", "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++)
{
$array[$row1][$c] = $data[$c];
}
$_SESSION['num'] = $num;
$row1 = $row1 + 1;
}
fclose($handle);
}
?>
<?php
$num = $_SESSION['num'];
$rows = $_SESSION['rows'];
for($rs=0;$rs<$rows;$rs++)
{
for($cs=0;$cs<$num;$cs++)
{
echo $array[$rs][$cs];
echo " ";
}
echo "<br />\n";
}
?>
<?php
$connection = oci_connect("SIEBELT2","SIEBELT2$1","DS2D");
$num = $_SESSION['num'];
$rows = $_SESSION['rows'];
for($rs=0;$rs<$rows;$rs++)
{
$main_query=oci_parse($connection,"INSERT INTO ROTTAN(NAME,ROLLNO) VALUES('$array[$rs][0]','$array[$rs][1]')");
if(!$main_query)
{
echo "Error in preparing the statement";
exit;
}
oci_execute($main_query);
}
$connection = oci_connect("SIEBELT2","SIEBELT2$1","DS2D");
?>
</body>
</html>
这是将excel表格中的记录插入oracle数据库的代码。
在第一个 php 脚本中,我正在读取 excel 表的行数。
在第二个 php 脚本中,我将 excel 工作表的内容存储到 2D php 数组中。
在第三个 php 脚本中,我尝试通过 INSERT INTO SQL 命令将二维数组上传到 oracle 数据库。 ROTTAN 是表名 NAME 和 ROLLNO 是表的两个字段
在运行 php 时,我在第 64 行收到以下错误:
$main_query=oci_parse($connection,"INSERT INTO ROTTAN(NAME,ROLLNO) VALUES('$array[$rs][0]','$array[$rs][1]')");
注意:第 64 行 C:\xampp\htdocs\Website_LMS\bulk1.php 中的数组到字符串转换
【问题讨论】:
-
您正在尝试将数组转换为查询本身中的字符串。先将数组转换成字符串,然后放到查询中。