我必须将数据插入到tblusers中,我已经在mysql中编写了存储例程,其中包含以下insert语句:
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_user`(IN `user_name` VARCHAR(255), IN `user_age` INT, IN `user_desgn` VARCHAR(255), OUT `return_message` VARCHAR(255))
BEGIN
INSERT INTO tblusers
VALUES (user_name,user_age,user_desgn);
SET return_message = 'Congratulations Inserted Successfully';
END
我在php中有一个表单,用于将数据插入表中。一旦我提交表单,我想将存储在$ _POST数组中的表单元素传递给我的存储例程插入用户。
目前我正在使用php pdo来调用程序(准备和绑定),如下所示:
$stmt = $handler->prepare("CALL insert_user(?,?,?,@return_msg)");
$name = $_POST['username'];
$age = $_POST['userage'];
$desgn = $_POST['userdesgn'];
$stmt->bindParam(1, $name, PDO::PARAM_STR, 50);
$stmt->bindParam(2, $age, PDO::PARAM_INT);
$stmt->bindParam(3, $desgn, PDO::PARAM_STR, 50);
// call the stored procedure
$stmt->execute();
这很完美。但是当我有更多列时,代码变得冗长,因此我想改变我做事的方式。我想将$ _POST数组传递给存储的例程并插入数据。有什么办法可以实现吗?请指导我在存储过程和php pdo代码中分别做了哪些更改。我是php的新手,如果你能用一个例子来解释它会很棒。