问题出现:致命错误:[]不支持字符串中的运算符 [英] Problem with: Fatal error: [] operator not supported for strings in

查看:65
本文介绍了问题出现:致命错误:[]不支持字符串中的运算符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从数据库中获取信息,将其保存在数组中,并以具有循环结构的形式回显它,当我尝试将修改后的信息保存到数据库时遇到问题.

I'm getting information from database, saving it in array and echoing it in a form with loop structure and I'm having problems when I try to save the modified information to database.

我收到此错误:

致命错误:...中的字符串不支持[]运算符.

Fatal error: [] operator not supported for strings in....

代码:

    $namesql1 = "SELECT name,date,text,date2 FROM table WHERE something= '$something'";
    $nameresult1 = mysql_query($namesql1);
    $countrows = mysql_num_rows($nameresult1);
    while ($row = mysql_fetch_array($nameresult1, MYSQL_ASSOC)) {
        $name[] = $row['name'];
        $date[] = $row['date'];
        $text[] = $row['text'];
        $date2[] = $row['date2 '];
    }

/** SOME CODE HERE **/

    $wrotesql = "UPDATE service_report SET  name ='$name' , $date = '$date',$text = '$text[$nro]', ser_date = '$date2[$nro]' WHERE something = '$something')";

    $wroteresult = mysql_query($wrotesql);

有人可以给我一个提示我做错了什么吗?

Could somebody please give me a hint what I'm doing wrong?

谢谢.

推荐答案

尝试在字符串上使用短数组推送语法时,会出现此错误.

You get this error when attempting to use the short array push syntax on a string.

例如,这个

$foo = 'foo';
$foo[] = 'bar'; // ERROR!

我可能会猜测您的$name$date$text$date2变量中的一个或多个已被初始化为字符串.

I'd hazard a guess that one or more of your $name, $date, $text or $date2 variables has been initialised as a string.

编辑:再次查看您的问题,您似乎实际上并不想将它们用作数组,因为您将它们当作字符串来处理.

Looking again at your question, it looks like you don't actually want to use them as arrays as you're treating them as strings further down.

如果是,请将您的分配更改为

If so, change your assignments to

$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];


似乎PHP 7和使用 empty-index 数组推送语法的代码存在一些问题.


It seems there are some issues with PHP 7 and code using the empty-index array push syntax.

为了明确起见,这些在PHP 7+中的工作正常

To make it clear, these work fine in PHP 7+

$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds one entry

$emptyArray = []; // creates an array
$emptyArray[] = 'value'; // pushes in an entry

什么是不起作用,它试图在声明为字符串,数字,对象等的任何变量上使用空索引推送,即

What does not work is attempting to use empty-index push on any variable declared as a string, number, object, etc, ie

$declaredAsString = '';
$declaredAsString[] = 'value';

$declaredAsNumber = 1;
$declaredAsNumber[] = 'value';

$declaredAsObject = new stdclass();
$declaredAsObject[] = 'value';

所有操作都会导致致命错误.

All result in a fatal error.

这篇关于问题出现:致命错误:[]不支持字符串中的运算符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆