php - 将日期从 PDO 传递到 MySQL 存储过程

标签 php mysql sql stored-procedures pdo

我从 MSSQL 转换到 MySQL 的过程即将结束,突然遇到了障碍。我有许多存储过程,我通过 PDO 从表单传递日期。这在 MSSQL 中运行良好,但现在导致 MySQL 版本下降。

这就是我调用该过程的方式:-

$command = "CALL AddThis (?, ?, ?, ?)";

$stpro = $conn->prepare($command);
$stpro->bindParam(1, $_POST['date'], PDO::PARAM_STR);
$stpro->bindParam(2, $_POST['type']);
$stpro->bindParam(3, $bool1, PDO::PARAM_BOOL);
$stpro->bindParam(4, $bool2, PDO::PARAM_BOOL);

// call the stored procedure

$returnvalue = $stpro->execute();

程序开始如下:-

PROCEDURE `AddThis `(
    IN this_date      date,
    IN this_type      nvarchar(50),
    IN bool1          bool,
    IN bool2          bool)

如果我完全删除第一个变量,程序将触发并且运行没有问题。一旦我添加日期字段,整个事情就会崩溃。

有什么建议吗?

最佳答案

好吧,所以这可能不是最好的方法,但我已经设法让它发挥作用(返回我想要的答案)。

我保持 php 原样

$stpro->bindParam(1, $_POST['date'], PDO::PARAM_STR);

但我已将 SQL in 语句更改为

IN this_date        nvarchar(10),

然后将此行添加到程序主体中。

SET     @datetouse = STR_TO_DATE(this_date, '%m,%d,%Y');

以 m/d/y 为格式,我在字符串中传递日期,并用“,”作为分隔符。

正如我上面所说,这可能不是正确的方法,但它有效,所以我很高兴。哈哈

关于php - 将日期从 PDO 传递到 MySQL 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24080220/

相关文章:

mysql - 大量写入/插入会影响数据库索引吗?

javascript - FullCalendar PHP 和 MySQL 集成,事件不更新

php - 当左连接列不存在时如何选择总和

mysql - 找出哪个数据库条目已更改

php - 计算小时并支付

php - 如何检索数组中与查询关联的其他值?

C# SQL 查询输出到 Excel 不包括输出中新添加的字段

python - SQL 数据库不显示条目

php - MySQL查询仅显示按用户分组的最后一个项目

php - 我在美国加利福尼亚州旧金山使用什么 php 时区