PHP 查询 MySQL 函数字符串

标签 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";

最佳答案

您可以映射一个函数来检查元素是否为数字,如果不是,则用引号括起来。

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

关于PHP 查询 MySQL 函数字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41210737/

相关文章:

javascript - 识别要删除的多边形

php - 在站点和断开的链接上启用 SSL

php - Mysql 事务,在第二个和第三个查询中都使用 LAST_INSERT_ID()?

sql - 如何在 Rails 事件记录查询中执行条件计数?

mysql - 从 2 个表中获取连接结果,当值不存在时,用空值填充

java - Spring 命名参数 : how can I parameterize Oracle interval in my query?

php - SQL查询只返回3行

php - 使用 php 进行电子邮件转发 | craigslist 的匿名电子邮件生成器

php - 在 IIS 7.5 上运行 PHP/MySQL 的分步指南

sql - 为 MySQL 中的一对多关系选择表