未定义变量 - Switch 语句在 PHP 中是否具有作用域

2024-04-15

大家好,这是我第一次发帖,认为这会很好,因为我完全陷入困境。据我了解,PHP 中的 switch 和 If/else 语句没有变量范围。

我的问题是我有一个 CSV 文件(示例文件),其中包含大约 5 行值,我需要将其放入 mySQL DB 表中(列标题在我的 switch 语句的“cases”中表示)但是无论如何我正在解析 CSV 文件并检查以确保数据位于应有的列中,并将其存储在变量中。然后,我将所有变量存储在一个数组中,该数组将被序列化,然后传递到我的 SQL 查询中。

我继续收到错误 SCREAM:忽略错误抑制 ( ! ) 注意:未定义变量:company 位于 C:\wamp\www\lcimport\serialize.php 第 98 行

但我知道这些变量在那里,因为我可以回显它们并且它们将被调用。但是,除非这些错误消失,否则我的查询将不会运行,因此不会填充我的数据库表。

我究竟做错了什么?

   <?php
//define some constants
$db = 'lc';
mysql_connect('localhost', 'root', ''); 
mysql_select_db($db);
 mysql_error();
$uid = md5(uniqid(time()));

//we only have this here to be a row counter
$row = 1;
if (($handle = fopen("C:\\wamp\\www\\lcimport\\4records.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        //var_dump($data);
       // echo $data[0];
        echo '';
        if ($row === 1) {
        $header = $data;
       }     

        $row++;
        for ($c=0; $c < $num; $c++) {
            //echo $data[$c] . "<br />\n";
            if ($row === 2) continue;
             switch ($header[$c] ){
              case "Contact":
                      $contact = explode (" ", $data[$c]);
                      $firstName =  $contact[0];
                      $lastName =  $contact[1];
              break;

              case "Company":
                    $company = $data[$c];


              case "Address1":
              //store
                    $address1 = $data[$c];

              break;

              case "Address2":
                    $address2 = $data[$c];

              break;

              case "Address3":
                    $address3 = $data[$c];

              break;

              case "City":
                    $city = $data[$c];

              break;

              case "State":
                    $state = $data[$c];

              break;

              case "Zip":
                    $zip = $data[$c];

              break;

              case "Phone1":
                    $phone1 = $data[$c];
              break;

              case "Phone2":
                     $phone2 = $data[$c];
              break; 

              case "Phone 3":
                    $phone3 = $data[$c];
              break;

              case "Fax":
                    $fax = $data[$c];
              break;          

              case "Accountno":
                    $accountNo = $data[$c];
              break;

              default:
                $junk = $data[$c];
              break;


             }




        }       
        echo $company;  
            $meta = serialize(Array(
                    "firstname" => $firstName,
                    "lastname" => $lastName,
                    "lawfirmname" => $company,
                    'address' => $address1,
                    'city' => $city,
                    'state' => $state,
                    'zip' => $zip,
                    'fulladdress' => '',
                    'officenumber' => $phone1,
                    'faxnumber' => $fax,
                    'mobilenumber' => $phone2,
                    'email' =>'nothing',
                    'website' => 'somthing.com',
                    'privacy' => 0,
                    'status' =>1
                    )); 




        mysql_query("INSERT INTO `mg_profiles` (meta) VALUES ($meta)");
        mysql_error();

    }
    fclose($handle);
    }


?>

如果其他所有变量都存在并且工作正常,那么失踪的break;应该是公司的问题。

在循环中与关系数据库进行通信并不是一个好主意,将结果存储到数组中可以提高内存和处理效率,并且在获取所有数据后,只需通过简单的请求插入即可,因为

INSERT INTO `mg_profiles` (meta) VALUES (...), (...), (...)

工作完美。

PHP 有一个command http://php.net/manual/en/function.list.php处理这样的进程:

while (($data = fgetcsv($handle, 1000, ",")) !== false) {
    if ($row == 1 || $row == 2) {
        $row++;
        continue;
    }
    list ($contact, $company, $address1 /*, ...*/) = $data;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未定义变量 - Switch 语句在 PHP 中是否具有作用域 的相关文章

  • 如何在 PHP 中解析和处理 HTML/XML?

    如何解析 HTML XML 并从中提取信息 Answer recommended by PHP collectives php Collective 原生 XML 扩展 我更喜欢使用其中之一原生 XML 扩展 https php net m
  • 一旦我们点击取消按钮,文本字段就会隐藏

    我们正在使用 magento 多供应商网站 我们正在使用以下代码来更新和取消价格 但是一旦我们单击 取消 按钮 文本字段就会隐藏 PHTML span class label pro status span
  • 如何将更改后的 SimpleXML 对象保存回文件?

    因此 我有这段代码 用于搜索 XML 文件中的特定节点 取消设置现有节点并插入具有正确数据的全新子节点 有没有办法使用 simpleXML 将这些新数据保存在实际的 XML 文件中 如果没有 是否有另一种有效的方法来做到这一点 public
  • PHP:正则表达式删除`a`或`–?

    我使用这个正则表达式从字符串输入中删除所有标点符号 pg url preg replace W pg url 但有些符号或特殊字符我无法删除它们 例如 当我将其传递到我的数据库注入时 它会变成 or 我怎样才能摆脱这些奇怪的东西 Thank
  • MySQL使用BLOB的二进制存储VS OS文件系统:大文件、大数量、大问题

    我正在运行的版本 基本上 最新的一切 PHP 5 3 1MySQL 5 1 41阿帕奇 2 2 14操作系统 CentOS 最新 情况是这样的 我有数千个非常重要的文档 从客户合同到语音签名 客户对合同的授权录音 文件类型包括但不限于jpg
  • 无法使用php连接到远程数据库

    我在 Windows 中安装了 Xampp 并且正在使用 Laravel 5 3 创建一个应用程序 我正在尝试在本地网络上的另一台服务器上执行查询 但是当我尝试这样做时 MySql 服务器使用以下命令对本地服务器上的用户进行身份验证 use
  • 根据已知字符串列表检查字符串中常见的错误识别字符

    背景 我的 MySQL 数据库中有一个由六 6 个字符组成的代码列表 它们由随机选择的数字和字母组成 它们被认为不区分大小写 但在数据库中以大写形式存储 它们可能由以下数字组成0但从来没有这封信O 我使用这些代码作为用户的一次性身份验证 问
  • echo 完整的 joomla 查询(带有限制等)?

    我想知道是否有一种方法可以用 limit 和 limitstart 等来回显完整的查询 我可以回显 query 行 但我想看看为什么限制不起作用 但我似乎无法理解它显示发送到数据库的实际查询 代码如下 params JComponentHe
  • 如何按布尔值对数组进行排序

    我有一个看起来像这样的数组 array array foo gt true array foo gt false array foo gt true array foo gt true array foo gt false 有没有一种简单的
  • 检查 DynamoDB 中是否存在表的最佳方法是什么?

    检查 DynamoDb 中是否存在表的最佳方法是什么 如果代码是 PHP 语言 我将不胜感激 要么活跃 要么不活跃 稍后作为错误代码 400 的各种情况的示例添加 检查表是否存在很容易 它可以有以下之一 表状态 gt 创建 活动 删除或更新
  • 如果菜单项超过 90 个菜单项的限制,Wordpress 将删除我的菜单项 -

    我想在我的菜单中添加更多项目 我的菜单在 WordPress 菜单 管理 中至少包含 90 个项目 我想添加更多项目 但发现其他项目会自动删除 有什么解决办法吗 很有可能 但不是 100 这是 PHP 限制 而不是 WP 您可以通过查看 p
  • PHP 日期/时间格式,需要一些帮助

    你能帮我使用 PHP 格式化以下日期吗 变量 start 包含以下日期 这个日期 Wed Feb 01 2012 05 00 00 GMT 080 应该成为 2012 02 01T13 00 00 我知道如何使用基本的 PHP 日期 时间格
  • 如何将 NaN 数组插入 numpy 二维数组

    我试图在二维数组中的特定位置插入任意数量的 NaN 值行 我正在将来自微控制器的一些数据记录在 csv 文件中并使用 python 进行解析 数据存储在 3 列 2D 数组中 如下所示 122 0 1 0 47 0 123 0 1 0 47
  • PHP 按值合并数组以获得 2 个不同的数组值

    我尝试将两个不同的数组合并为一个数组 有人可以帮我吗 我有这样的数组 0 Array 2 rank 579 id 1 1 Array 4 rank 251 id 2 0 Array 2 size S rank 251 1 Array 15
  • JavaScript 从 json 迭代键和值? [复制]

    这个问题在这里已经有答案了 我正在尝试迭代以下 json VERSION 2006 10 27 a JOBNAME EXEC JOBHOST Test LSFQUEUE 45 LSFLIMIT 2006 10 27 NEWUSER 3 NE
  • 排除“解析错误,意外的‘>’”错误[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我收到这个
  • 根据用户投票移动 div

    我是新来的 但我喜欢这个网站 我检查了其他类似的问题 但没有看到我要找的东西 我是一名音乐家 有一段时间我一直在做 每日之歌 每天写一首小歌 我想将歌曲发布为 div 在里面 li 在 div 中 我只想要一个简单的 mp3 播放器和一个
  • 通过变量引用工作簿和工作表

    引用不同工作簿的工作表的正确语法是什么 以下代码在最后一行抛出错误 谢谢 Instantiate Workbook variables Dim mWB As Workbook master workbook Instantiate Work
  • 如何隐藏实际的下载文件夹位置

    我想隐藏下载文件夹位置 以便用户下载文件时看不到该位置 我认为这可以使用 htaccess 文件来完成 但我该如何做到这一点 或者如何使用 PHP 来完成此操作 我在 PHP 中是这样做的
  • 总小时数无法从 Android 插入 MySQL

    我使用以下公式获得总小时数 public void updateTotalHours int a SplitTime objMyCustomBaseAdapter getFistTime int b SplitTime objMyCusto

随机推荐

  • 如何在协议中声明通用协议属性要求

    挣扎了一段时间 如果你能阐明这一点 那将会非常有帮助 我有一个APIWorkerProtocol它有一个属性要求 所需的属性是一个协议 即DataParserProtocol protocol APIWorkerProtocol var a
  • scala 类型的上限和下限

    考虑以下层次结构 class C1 class C2 extends C1 class C3 extends C2 class C4 extends C3 我想写一个只接受类型的函数C2 and C3 为此我想到了以下几点 def f C
  • Bootstrap 的工具提示在悬停时将表格单元格向右移动一点

    我在我的项目中使用 Bootstrap 3 1 1 我的表格中的每个单元格都包含如下数据000 or 111 悬停时 我想将此数据显示为工具提示 到目前为止 这有效 但是 当我将鼠标悬停在 td 所有相邻单元格向右移动 这是我的 JSFid
  • 向 UITextView 添加轮廓/描边

    我想将轮廓或描边添加到可编辑的UITextView用户键入的文本 就像模因一样 http t qkme me 3oi5rs jpg http t qkme me 3oi5rs jpg 我必须使用UITextView因为我需要多线支持 我已经
  • 如何使用 ggplot2 在多面图中定义 y 轴中断?

    我必须绘制具有不同范围值的数据 我正在使用 ggplot2 的构面设计和选项facet grid variable scales free 但是 我想设置 y 轴上的中断值 以便对于所有变量 中断都是c 0 max variable 2 m
  • 如何将对象注入到 WCF 验证器类中

    跟进使用依赖注入世界碳基金服务 https stackoverflow com questions 881705 how to inject an object into a wcf service 有没有办法将 DI 用于 WCF验证者
  • 点击时展开 UICollectionView 及其单元格

    我正在尝试制作一个过渡动画 如链接中的演示here https dribbble com shots 2733571 Citadela countries 因此 当我单击该单元格时 它会展开并覆盖整个屏幕 这是我的代码 我不得不承认我对 C
  • Perl DBI fetchall_hashref

    考虑下表 mysql gt select from vCountryStatus CountryName CountryISO Code Status Symbol CurrencyName Brazil BR 55 LIVE BRL Br
  • 如何通过 django rest api 中的一个序列化器发布多个模型数据

    我有两个模型 Contact and User class Contact models Model name models CharField max length 50 blank True status models BooleanF
  • 如何将类作为 ASP.NET MVC htmlAttributes 的键值对传递?

    我想使用 Html TextBox FullName null new 在 ASP NET MVC 中为我的输入框传递 html 输入类属性class 灰色输入 但我想我可以使用 class 关键字 我怎样才能绕过这个问题 是的 您需要使用
  • 在 MacOS 上从源代码构建 gdb

    我正在尝试在 Apple M1 MacBook 上安装交叉编译的 gdb 我下载了 gdb 11 1 并执行了以下操作 tmp src gdb 11 1 configure enable targets all make sudo make
  • 在 JavaScript 正则表达式中链接多个正向前瞻

    我是学习正则表达式的新手 我遇到了这个答案 https stackoverflow com questions 14850553 javascript regex for password containing at least 8 cha
  • Python中使用递归获取列表的长度

    我正在尝试计算列表的长度 当我在cmd上运行它时 我得到 RuntimeError maximum recursion depth exceeded in comparison 我不认为我的代码有什么问题 def len recursive
  • 捕获不带 \n 的输入

    我正在终端中制作一个简单的 2d 游戏 我一直想知道如何获得标准输入而不必返回 因此 用户不必按 w n n 用于返回 而只需按 w 即可前进 scanf gets 和 getchar 无法做到这一点 但我以前见过在 Vi 等程序中做到过
  • 如何使用 Invoke-Sqlcmd 连接到 SQL Server LocalDB?

    I have sqlcmd exe来自 SQL Server 2008 和 SQL Server 2012 PS C gt Get Command sqlcmd exe Definition C Program Files Microsof
  • 使用散景滑块滑动图像

    我试图在滑块的帮助下无缝地传达大量科学数据 我从 Bokeh 开始 对 javascript 几乎一无所知 我尝试设置第一种方法来滑动两个图像 但我无法刷新图像 假设我的文件夹中有 1 png 和 2 png from bokeh io i
  • 在 Visual Studio 中编译时如何将 DLL 保存在不同的文件夹中?

    假设我有一个窗口表格 控制台应用程序 C 与一些项目外部参考以及对同一解决方案中其他类库项目的引用 当我构建窗口形式项目 我希望引用的库存储在不同的位置 eg bin 发布 库 并且与 exe 不在同一文件夹中 可以做吗 您的问题有两部分
  • python 3 替代 dircache?

    在我重新发明轮子之前 谁能告诉我是否有单行语句的直接 或半直接 替代 allfiles dircache listdir 一条线 不 但你可以这样做 global cache def cached listdir path res glob
  • PHP 扰乱了 HTML 设计并在 HTML 之外显示结果

    我不确定为什么会发生这种情况 我在 HTML 或其他任何方面都不是 那么好 我主要假设我的问题是如何显示结果 任何提示 帮助 或建议都非常感谢 该脚本基本上是一个简单的 FoodManagement 类 它管理食物 哈哈 这是代码 inde
  • 未定义变量 - Switch 语句在 PHP 中是否具有作用域

    大家好 这是我第一次发帖 认为这会很好 因为我完全陷入困境 据我了解 PHP 中的 switch 和 If else 语句没有变量范围 我的问题是我有一个 CSV 文件 示例文件 其中包含大约 5 行值 我需要将其放入 mySQL DB 表