我从数据库中获取信息,将其保存在数组中,并以具有循环结构的形式回显它,当我尝试将修改后的信息保存到数据库时遇到问题。
我收到此错误:
致命错误:字符串中不支持[]运算符。
码:
$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);
有人可以给我一个提示我做错了什么吗?
谢谢。
尝试在字符串上使用短数组推送语法时,会出现此错误。
例如这个
$foo = 'foo'; $foo[] = 'bar'; // ERROR! 我大胆猜测的一个或多个你的$name,$date,$text或$date2变量已经被初始化为一个字符串。
编辑:再次查看您的问题,似乎您实际上并不想将它们用作数组,因为您将它们当作更进一步的字符串来对待。
如果是这样,请将您的分配更改为
$name = $row['name']; $date = $row['date']; $text = $row['text']; $date2 = $row['date2']; 似乎PHP 7和使用empty-index数组推语法的代码存在一些问题。
明确地说,这些在PHP 7+中可以正常工作
$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds one entry
$emptyArray = []; // creates an array $emptyArray[] = 'value'; // pushes in an entry 什么是不工作正在尝试使用空指数上宣布为字符串,数字,对象等,即任何变量推
$declaredAsString = ''; $declaredAsString[] = 'value';
$declaredAsNumber = 1; $declaredAsNumber[] = 'value';
$declaredAsObject = new stdclass(); $declaredAsObject[] = 'value'; 所有这些都会导致致命错误。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。