簡體   English   中英

將日期從PDO傳遞到MySQL存儲過程

[英]Passing a Date from PDO to MySQL Stored Procedure

從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是我在字符串中以“,”作為分隔符傳遞日期的格式。

就像我在上面說的那樣,這可能不是正確的方法,但是它有效,所以我很高興。 大聲笑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM