我在 PHP 类中有一个函数,我试图在其中创建和运行存储过程,但我似乎无法将变量传递给存储过程。如果我手动键入dateStart
, dateEnd
,user_id
然后事情按预期运行,但当我尝试将变量绑定到它时却没有(我什至尝试直接使用 PHP 变量无济于事):
try {
$sql = $conn->prepare("
DROP PROCEDURE IF EXISTS datespopulate;
DELIMITER |
CREATE PROCEDURE datespopulate(dateStart DATE, dateEnd DATE, user_id)
BEGIN
WHILE dateStart <= dateEnd DO
INSERT INTO timesheet (DATE_YYYYMMDD, USER_ID) VALUES (dateStart, user_id);
SET dateStart = date_add(dateStart, INTERVAL 1 DAY);
END WHILE;
END;
|
DELIMITER ;
CALL datespopulate(:startdate,:enddate,:user_id);
");
$sql->execute(array(
':startdate'=> $startdate,
':enddate'=> $enddate,
':user_id'=> $userid));
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage(); }
我尝试bindparam
了,但这似乎也不起作用(也许我做错了?)。我在这里做错了什么?