php - 存储过程的替代品?

标签 php mysql stored-procedures

托管我的网站的服务器无法升级到较新版本的 MysQL(第 5 版),并且由于安全问题,托管公司已禁用(在我创建了许多之后)存储过程。

DELIMITER ;;
CREATE DEFINER=`blahblahblah`@`xx.xx.xx.%` PROCEDURE `get_bindings_chart`(IN in_layout_id TINYINT(3), IN in_game_id SMALLINT(5))
BEGIN
    SELECT  b.normal_group, b.normal_action, b.shift_group, b.shift_action, b.ctrl_group, b.ctrl_action, b.alt_group, b.alt_action, b.altgr_group, b.altgr_action, b.extra_group, b.extra_action, b.image_file, b.key_number
    FROM    bindings as b
    WHERE   b.layout_id = in_layout_id
    AND     b.game_id = in_game_id;
END ;;

我可以使用哪些替代存储过程的方法?我的网站主要是 PHP。 PHP 替代品是否存在安全风险?谢谢。

最佳答案

没有任何语言可以证明安全问题。安全问题由开发者负责。

另一种看待它的方式是,您可以用任何语言(包括 MySQL 存储过程)编写不安全的应用程序,同样,您可以用任何语言编写安全的应用程序。

关于用 PHP 代码编写安全 SQL,您应该阅读:

这些应该有助于让您了解 SQL 编程中最常见的安全错误。

我很少在 MySQL 中使用存储过程,不是因为它们不安全(正如我所说,它们不是,安全取决于开发人员),而是因为 MySQL 存储过程很难编写。没有调试器,没有包支持,没有编译器,用它来编写代码是一种笨拙的语言。任何我可以使用存储过程完成的任务,我都可以用 PHP、Python 或 Ruby 等脚本语言更轻松地编写。

关于php - 存储过程的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50710955/

相关文章:

php - 使用 .htaccess 重定向注册 URL

php - 使用/#/重定向 URL

javascript - 通过 Javascript 错误将考试时间设置为 30 分钟?

php - 从 ROW 获取 ID 并包含在可链接结果中 - PHP MYSQL

php - 什么设置可能导致 AMP 服务器对每个浏览器一次只允许 1 个请求?

php - 插入忽略独特的电子邮件 laravel 5.4

MYSQL如何将 '2013-8-21'转换为日期格式

postgresql - 当参数为 NULL 时将 DEFAULT 值插入列

sql-server - 通过减少生成的唯一查询计划来优化动态 SQL 存储过程

sql - 为SQLEXCEPTION添加SQL EXIT HANDLER会导致语法错误和意外的文本