PHP非法字符串偏移错误&字符串转换错误

时间:2016-03-11 14:57:19

标签: php mysql

我知道有一些像这样的问题,但我似乎无法使用我见过的任何答案修复我的代码。 我使用的是PHP 5.6.15版,我从PHPMYADMIN数据库中提取信息。我试图使用的表格称为大学,该表格的主键是“UNI_ID'”。当我使用var_dump时它说它是一个数组,但我不知道如何将它转换为字符串,或者即使这是我需要做的事情。 删除'和'编辑'按钮是导致错误的按钮,因为错误是针对这些行的。我也得到一个数组到字符串转换错误。 我尝试过使用isset,但它仍然无法正常工作。 这似乎在另一个页面上使用相同的代码正常工作,只是无法找到差异。 这是我的代码:

setInterval

1 个答案:

答案 0 :(得分:1)

你的代码中有一个拼写错误:

$row=["UNI_ID"]

你可能想要的地方:

$row["UNI_ID"]

现在解释输入错字会发生什么,因为它有点有趣。您可能会遇到语法错误,但因为您有PHP> 5.4,它(几乎)有效的代码。

  • ["UNI_ID"]将创建一个数字索引数组,其中包含一个字符串。相当于array(0 => "UNI_ID")
  • 接下来,新创建的数组会与之后的内容连接,直到;,成为无用的怪物字符串,并在此过程中抛出转换通知,因为您将数组连接到字符串。但是一个通知错误是低级别的,所以它不会停止脚本,它会继续。
  • 然后将该怪物字符串分配给 $ row ,将其完全更改为字符串而不是之前的数组。下次你尝试从 $ row 获得一些东西时,你会得到字符串偏移量错误,因为字符串可以像数组一样被访问,但只能用于某些键,而你试图得到的是绝对不在其中。所以再次,没有严重的错误,脚本继续。

这表明PHP不是一个如此优秀的语言,因为它允许你最终得到这样的错别字,只触发Notices。