在过去的三年里,我一直在 2011 MacBook Pro 上运行 MAMP Pro (1.9.6.1)。PHP 5.2.17 / MySQL 5.5.9
我编写了一个 .php 驱动的站点来存储有关我的广播节目的信息。它运行没有任何问题或任何错误。
我已升级到运行 MAMP Pro 3.0.7.3 - PHP 5.6.2 / MySQL 5.5.38 的新 MacBook Pro。在第一次设置中稳定运行且没有错误的脚本在第二次设置中产生了意想不到的结果。
我 90% 确定这是由于 .php 或 MySQL 在我的新设置中处理单引号/撇号的方式。
具有字符特征的INSERT 查询'
未成功插入到数据库中。
例如
INSERT INTO song_info
(artist_id, title_id, composer_id, publisher_id, album_id,
album_track, label_id, cat_no, format, howsent, song_rating,
duration, intro, fade, year, medium, release_date, recommended,
cymraeg)
VALUES
('2', '2', '2', '2', '2', '99', '2', 'voom001', 'album_track',
'direct', '6', '3'01', '0'36', '2'50', '2015', 'vinyl',
'2015-03-19', '0', '0')
如果我要插入数据库的值中没有'
字符,则查询成功执行。
我要插入数据库的值中带有 ' 字符的查询在之前的设置中成功执行。
脚本完全相同。
我不想开始更改脚本 - 转义'
.php 中的字符 - 因为我很确定这是一个配置问题,我只是不知道在哪里/要更改什么。
这些脚本在笔记本电脑上本地运行。其他任何人都无法访问它们,也不会。
因此,尽管我知道这样的编码存在真正的安全问题,但我会在适当的时候升级(数千行)代码时解决这些问题。
我需要快速临时修复,以便完成我的工作。然后我将开始正确升级代码。
我正在使用 mysql_ 函数。再次,当我有机会升级到 mysqli_ 时。