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 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题