用ANSI格式重写MySQL的INSERT字符串

时间:2016-01-12 06:16:07

标签: php mysql ansi

我一直在尝试使用php的preg_split将mysql的sql insert语句字符串重写成一般格式,例如:

INSERT INTO`table_name`    SET`col1` = 123,`col2` ='那是''测试用例'',那也是'。'


预期结果:

数组[0] = 'COL1'
    阵列[1] = 123
    阵列[2] = 'COL2'
    数组[3] ='那是''测试用例'',那也是'。'

因此,我可以使用结果数组将sql写入以下内容:

插入table_name(col1,col2)     价值观(123,'那是''测试用例'',那也是'。');

显然像 preg_split('/,/',$ source)这样的简单函数在所有情况下都不起作用。我想知道是否有更好的方法来做到这一点?提前谢谢。

1 个答案:

答案 0 :(得分:0)

/**
         * @param array $fields_values
         * @param string $table
         * @return string
         */
        function insertQuery(array $fields_values, $table) {
            $fields = implode(', ', array_keys($fields_values));
            $values = implode(', ', array_values($fields_values));
            return $query = "INSERT INTO {$table} ({$fields}) VALUES ({$values})";
        }