我正在接近从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)
如果我完全删除第一个变量,则程序触发并运行没有问题。一旦我添加日期字段,整个事情就会崩溃。
有什么建议吗?
答案 0 :(得分:0)
好吧,所以这可能不是最好的方法,但我设法让它工作(返回我想要的答案)。
我保持了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是我通过","传递字符串中日期的格式。作为分隔符。
正如我上面所说,这可能不是这样做的正确方法,但它有效,所以我很高兴。洛尔