我有一个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";
答案 0 :(得分:0)
您可以映射一个检查该元素是否为数字的函数,如果没有则包装引号。
$sql = sprintf("SELECT %s(%s) AS row FROM dual",
'test',
implode(', ', array_map(function($x) {
return is_numeric($x) ? $x : "'$x'";
});
);