php - 如何在 PHP 中使用数据库架构?

标签 php mysql global-variables database-schema

我正在编写一个供个人使用的小型 PHP/MySQL 应用程序。这是我第一次使用 PHP,所以请耐心等待。

我希望能够在需要时更改数据库架构,因此所有内容都放入变量中(例如表和列名称)。我在开发过程中使用了两种方法:

  • 全局变量

db_schema.php:

$table = "table_name";
$column = "column_name";

main.php:

function do_db_stuff()
{
    global $table;
    global $column;
    global $db;
    $db->query("SELECT `$column_name` FROM `$table_name`;");
}
  • 定义

db_schema.php:

define (TABLE, "table_name");
define (COLUMN, "column_name");

main.php:

function do_db_stuff()
{
    global $db;
    $db->query("SELECT `" . COLUMN . "` FROM `" . TABLE . "`;");
}

现在,当我使用变量时,我喜欢查询字符串的良好语法 - 我不需要使用 .连接,但是这种方法需要大量的 global每个函数开头的语句。这是一个破坏交易的事情。第二种方法取消了 global s,但语法不太好。

是否有耗时考验的 PHP 风格的解决方案来解决这个问题?

最佳答案

这个怎么样?

$schema = array(
    'table' => 'spam',
    'column' => 'eggs',
);

function do_db_stuff() {
    global $db;
    global $schema;
    $sql = sprintf(
        'SELECT `%s` FROM `%s`',
        $schema['table'],
        $schema['column']
    );
    $db->query( $sql );
}

关于php - 如何在 PHP 中使用数据库架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21233633/

相关文章:

javascript - ajax 调用后,curl 和 file_get_contents 不起作用

php - varchar 和 int mysql 数据类型的默认值

php - mysql php 选择一条与另一条相似的记录

javascript - 在 JavaScript 中使用 'window' 和局部变量进行全局访问

javascript - 在 Vuejs 中创建全局变量

php - WooCommerce 管理产品 "general data"邮箱问题

javascript - 无法从php中的ajax访问2个或更多文件

mysql - 将 Access 表单/报告绑定(bind)到 MySQL 存储过程的结果

javascript - 有没有办法在没有全局变量的情况下取消 requestAnimationFrame ?

php - "Unable to parse URL"SOAP 请求后异常