php - 基于 MySQL 列数据类型的动态 PHP 代码创建

标签 php mysql code-generation

我正在开发一种工具,可以根据数据库中的表创建 PHP 类。大多数功能都基于来自 SHOW COLUMNS FROM $table 的数据。每列通常与正在创建的新类中的一个实例变量相关。

我现在遇到的情况是,如果用户为与 INT 类型的列相关的变量传入“12”,它不会失败,但数据库中的值变为 0。

我希望类返回 false,表明 UPDATEINSERT 无法完成。

您会为此推荐什么方法?

我现在正在尝试的是构造一个列名数组,其中包含具有数字数据类型(INT、FLOAT 等)的每一列。当用户尝试设置变量时,它会检查变量是否在此列表中,然后检查设置的值以确定它是否为数字。

使用 MySQLi 的 PHP 5.3.3

我假设任何非数字的列都将接受文本数据。

最佳答案

你问的是ORM。 PHP 中有一些不错的 ORM 库。

  1. Doctrine
  2. Propel
  3. Outlet ORM
  4. Leap ORM for Kohana (我用它)
  5. PHP Data Mapper

顺便说一句,我回答你的问题。

如果设置了任何无效数据,您可以抛出异常。

查看示例。

class MyTable extends DbTable{
    function __set($var, $val){
        switch($var){
            case 'age': // age should be numeric type
                if(!is_numeric($val)){
                    throw new InvalidDataTypeException("$val of $var is not numeric");
                }
             /// do other operation here

             ... 
             ... // more cases
        }
    }
}

关于php - 基于 MySQL 列数据类型的动态 PHP 代码创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9007110/

相关文章:

javascript - 如何通过函数将 MySQL 数据从 PHP 传递到 Javascript

php - Laravel 4 中未找到 Controller 路由

PHP SCRIPT - 执行时不更新数据库

mysql - R- SQLDF - 选择...案例...结束

gradle - 从JOOQ Code Gen Config xml中的属性文件读取值

algorithm - 作为有限状态机的通用语言解析器

php - 配置文件图像存储数据库或服务器系统

mysql - 从另一个表更新表: Difference between using inner join and update multiple tables?

mysql - 我如何获得注册号为 17015 的学生的科目平均分?

maven - 将 maven 代码生成转换为 gradle 任务