【发布时间】:2015-11-05 00:53:30
【问题描述】:
我有一个使用数据库的网站 (www.eqtraders.com) 它使用 PHP 和 MySQL 运行
似乎主机最近更新了 PHP,现在 'yield' 是 PHP 中的 predefined keyword。
所以......我到处走,将产量的所有字段引用更改为 r_yield。然后我将数据库字段名称更改为r_yield。
我确信代码正在发送以下查询:
INSERT INTO recipes (item_id, r_yield, tradeskill, restriction, triv_low, triv_high, date_added, triv_display) VALUES ("51998", "1", "Spell Research", NULL, "432", "432", "2015:11:04", "432")
为此,我得到了错误:
“字段列表”中的未知列“r_yield”,在 db:recipes 中
PHPMySQL 报告字段名称为 r_yield(除了配方之外,还有两个表也需要更改)
Screenshot of PHPMyAdmin with the name change. Field 3
有人对我可能需要做什么有任何建议吗?
【问题讨论】:
-
尝试清除数据库模型缓存(如果有)
-
不完全确定为什么 PHP 关键字会影响 sql 查询,至少您在从查询结果访问数据时会使用字符串值
'yield' -
“它是用 PHP 和 MySQL 运行的”信息量不大。您的网站是否在任何框架上运行?哪个版本?每个框架都有自己处理数据库的方式,因此请提供该信息。问候,
-
它在 Apache 版本 2.4.17 上运行 PHP 版本 5.6.14 和 MySQL 版本 5.5.46-cll。
-
我承认自己是一个业余爱好者,尤其是当我多年前编写此代码时。它在 Apache 版本 2.4.17 上运行 PHP 版本 5.6.14 和 MySQL 版本 5.5.46-cll。
没有框架。这是自定义代码。给出错误的几行代码(剪切之间的大量代码)的示例是extract($_GET); extract($_POST); extract($_SERVER); if (isset($data) && isset($rsdata) && isset($rcdata)) { $rs = $data[item_id]; for ($i=0;$i<5;$i++) { $rs_temp_data[item_id] = $rsdata[item_id][$i]; $rs_temp_data[r_yield] = $rsdata[r_yield][$i];