【问题标题】:Notice: Array to string conversion in "path of php file" on line 64注意:第 64 行“php 文件路径”中的数组到字符串转换
【发布时间】: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 中的数组到字符串转换

【问题讨论】:

  • 您正在尝试将数组转换为查询本身中的字符串。先将数组转换成字符串,然后放到查询中。

标签: php mysql arrays oracle


【解决方案1】:

在将变量插入双引号字符串时,大括号是您的朋友:

$main_query=oci_parse($connection,"INSERT INTO ROTTAN(NAME,ROLLNO) VALUES('{$array[$rs][0]}','{$array[$rs][1]}')");

【讨论】:

    【解决方案2】:

    这样做:

    $main_query=oci_parse($connection,"INSERT INTO ROTTAN(NAME,ROLLNO) VALUES('{$array[$rs][0]}','{$array[$rs][1]}')");
    

    注意每个变量周围的花括号。在字符串中使用时,PHP 无法计算出复杂的表达式。或者你可以这样做:

    $main_query=oci_parse($connection,"INSERT INTO ROTTAN(NAME,ROLLNO) VALUES('" . $array[$rs][0] . "','" . $array[$rs][1] . "')");
    

    【讨论】:

      猜你喜欢
      • 2015-03-26
      • 2013-04-18
      • 1970-01-01
      • 2013-11-03
      • 2018-01-26
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多