duanmao2774 2017-07-24 13:04
浏览 48
已采纳

用于创建动态SQL查询的PHP函数

I have a lot of repetitive code that inserts and selects data from my MySQL database. Out of curiosity, is it possible to create a PHP function that can take the table, columns, and rows as parameters and generate the SQL statement. A completely dynamic SQL statement generator, if you will.

For example:

function PushData($table, $columns, $values)
{
    // insert data
}

Furthermore, is the opposite possible. A function that can select and return data.

function PullData($table, $columns, $rowID)
{
    // grab data
    return data;
}

Is something like this possible? If so, would this be something worth doing?

  • 写回答

2条回答 默认 最新

  • donglei2022 2017-07-24 15:12
    关注

    Try something like that i'm not sure that it will work.

    function PushData($table, $columns, $values)
    {
        $question_mark = count($columns)-1;
        $question_mark_array = array_fill(0, $question_mark, '?');
    
        $valueEscapedTrimed = array();
    
        foreach($values as $value)
        {
            $value=trim($value);
            $valueEscapedTrimed[] = htmlentities($value, ENT_QUOTES | ENT_HTML5, $encoding = 'UTF-8' );
        }
    
        $query = 'INSERT INTO '.$table. '(' .implode(' ',$columns). ') VALUES ('.implode(',',$question_mark_array).') \' ' ;
    
        foreach($valueEscapedTrimed as $value)
        {
            $stmt = $conn->prepare($query);
            $stmt->bindValue('?', $value);
            $stmt->execute();
            $stmt->CloseCursor();
            $stmt=null;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程