PHP查询MySQL函数字符串

时间:2016-12-18 17:01:04

标签: php mysql sql

我有一个SQL变量:

$paramArray = ['test@gmail.com', 111];

$sql = sprintf(SELECT %s(%s) as row from dual,
            'test',
            implode(', ', $paramArray)
);

我得到一个这样的字符串:

"SELECT test(test@gmail.com, 111) from dual";

但是我收到了错误。

如何获得这样的字符串:

"SELECT test('test@gmail.com', 111) from dual";

1 个答案:

答案 0 :(得分:0)

您可以映射一个检查该元素是否为数字的函数,如果没有则包装引号。

$sql = sprintf("SELECT %s(%s) AS row FROM dual",
        'test',
        implode(', ', array_map(function($x) {
            return is_numeric($x) ? $x : "'$x'";
        });
);