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

时间:2017-07-24 13:04:38

标签: php mysql

我有很多重复的代码,可以从我的MySQL数据库中插入和选择数据。出于好奇,是否可以创建一个PHP函数,该函数可以将tablecolumnsrows作为参数并生成SQL语句。一个完全动态的SQL语句生成器,如果你愿意的话。

例如:

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

此外,情况恰恰相反。一个可以选择和返回数据的函数。

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

这样的事情可能吗?如果是这样,这会值得吗?

2 个答案:

答案 0 :(得分:2)

尝试类似的东西我不确定它会起作用。

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 :(得分:1)

万一有人像我一样好奇,我做了两个功能的实例。特别感谢迈克尔的回答让我朝着正确的方向前进。

插入数据功能

function PullData($conn, $table, $columns, $operand_column, $operand_value)
{
  $columns = implode(',', $columns);
  $sql = "SELECT {$columns} FROM {$table} WHERE {$operand_column} = {$operand_value}";
  $result = mysqli_query($conn, $sql);
  return $result;
}

选择数据功能

google.maps.event.trigger(map, 'resize');
相关问题