【问题标题】:trouble with double quotes first record of PHP arrayPHP数组的双引号第一条记录的问题
【发布时间】:2017-09-12 16:24:33
【问题描述】:

php5,Microsoft SQL Server Management Studio,操作系统 6.3.15063。我通过 mssql_fetch_assoc 获取 $row 数据,并在第一条记录没有双引号时用 $row 数据填充 PHP 数组。后续行数据可以有双引号,但不能是第一行。错误:jquery.min 中的“SyntaxError: missing ) after argument list” - 所以我无法细读并从中获得有用的信息。代码:

$History_SQL = "
DECLARE @AID int;
SET @AID = $Activity_ID;
SELECT activityid, lpid, abstract, changeid, changestamp FROM cpy_activity_history 
WHERE activityid = @AID ORDER BY changestamp DESC;
";

  $History_results = mssql_query($History_SQL);

while ($row = mssql_fetch_array($History_results)) {
  $HistoryRecords[] = $row;
}

这在记录索引[0] 没有双引号时有效,但是当双引号时,会出错。

有趣的是,如果我使用:

$HistoryRecords[] = json_encode($row);

RESULT>>SyntaxError: missing ) after argument list

然后它会越过错误;但我无法使用 json_decode 从数组中获取任何有用的信息 [甚至没有获取 js 大括号或任何东西,从另一个表中获取另一条记录,可能是因为这个值不是它认为的/无论哪种方式,我什至不确定我是否从 json_endode/decode 开始走上正确的道路。]

可能我只是需要帮助学习如何解码来自 json 编码 var 的每条记录。无论哪种方式,这个问题看起来是否熟悉,以及如何停止出现错误的任何想法?注意:最终,我需要通过 javascript 显示数组信息。其他相关帖子似乎没有涵盖这种情况。这些双引号被证明是令人抓狂的。提前致谢!

【问题讨论】:

  • 您的问题非常令人困惑。问题是什么?如果你这样做:json_encode($HistoryRecords) 在你的第一个代码块中会发生什么?您说“如果我这样做,那么它会越过错误”,同时显示实际错误?该数组在编码之前是什么样子的?尝试var_dump($HistoryRecords); 并将输出添加到您的问题中。
  • 您能否将返回的数据提供给我们,以便我们更好地了解 PHP 想要您不提供的内容?我猜有不匹配的引号或类似的东西,导致 PHP 寻找它没有找到的表达式的结尾,但没有看到 PHP 看到的内容 - 我们真的做不了太多。
  • htx!!努力说清楚:[1]输入sql:...年龄“出生到五岁”在坎伯兰县...[2]原始代码:$HistoryRecords[]=$row; [当表格记录中没有 d.quotes [0]/最近时,所有工作;随后的历史记录可以有 d.quotes]。 [3]当我执行 $HistoryRecords[]=json_encode($row) 或 json_encode($HistoryRecords) 时,在比较函数中使用这个和另一个文本 var 的输出只返回另一个 var [我知道的混淆]。 [4]var_dump 产生的信息是......在坎伯兰县“出生到五岁”......[5]所以 php var 看起来不错,但浏览器 error="missing ) after arg list"
  • 令人困惑,我知道,试图只隔离相关的代码。也许关于编码 $row,然后对其进行解码,并通过 js 解码访问 ea var 的最佳方法的建议? var 我需要输出到浏览器:$HistoryRecords[0]['abstract']。整个事情感觉很奇怪,很抱歉造成混乱。我宁愿离开并重新集结,也不愿因为一篇糟糕的帖子而被骂。

标签: php sql-server json


【解决方案1】:

谢谢,所有的帮助!

症状包括 [a]browser crashing with console/js error: "missing ) after arg list", [b]a var 在代码中显示错误字段,与用于创建信息的 sql 无关变量。

发生这种情况的原因是我在 PHP 中有一个包含 PHP 变量的 console.log。所以我在混合js和PHP。 PHP 触发较晚,因此当时 js 的 console.log 没有任何内容可显示。

导致解决此问题的线索注意到 js msg 在浏览器中崩溃,但 js 下方的 php LOG_IT stmts 正在工作。 js 试图 console.log 一个具有空值的 msg,并且不知何故 js var 被加载了错误的信息。嘘。

代码 - 在修复之前 console.log 中的 php 回显是罪魁祸首。我扔掉了原来有问题的 stmt,但它是这样的:

<?php here in php land....., now i want to do a console.log....
?><script>console.log("show me info!: " <?php echo $info; ?></script><?php
...back in php land...

我注释掉了“echo $info;”一切都奏效了。当然,我完全撕掉了它。有趣的是,当我停止将头撞在墙上并决定清理并删除所有故障排除 console.logs 时,它会自行清理。

结论 - 一个古老的教训,“不要混合使用 js 和 php”,即使是在错误记录中!

再次感谢您的帮助!

【讨论】:

  • 您的第一个结论应该是“不要将未加引号的字符串传递给console.log。”下一个结论应该是“不要使用当前 PHP 版本中不存在的已弃用的数据库 API!”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多