Php 将表单的$\u post数组元素作为字符串传递给mysql存储例程

Php 将表单的$\u post数组元素作为字符串传递给mysql存储例程,php,forms,stored-procedures,pdo,Php,Forms,Stored Procedures,Pdo,我必须将数据插入到我在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 VAL

我必须将数据插入到我在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表单,用于将数据插入表中。提交表单后,我希望将存储在$\u POST数组中的表单元素传递到存储的例程insert user中

目前,我正在使用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();

这是完美的工作。但是当我有更多的列时,代码会变得很长,因此我想改变我的工作方式。我想将$\u POST数组传递给存储例程并插入数据。我有没有办法做到这一点?请指导我在存储过程和php pdo代码中分别需要做哪些更改。我是php新手,如果你能用一个例子来解释,那就太好了。

根据这篇文章,只有循环才是减轻代码负担的可能方法。谢谢你的建议,但是我有不同的数据类型用于表单元素,如date、int、string等。任何关于实现它的建议。根据这篇文章,只循环是减轻代码负担的可能方法。谢谢你的建议,但是我有不同的数据类型用于表单元素,比如date、int、string等等。任何关于实现它的建议。根据这篇文章,只循环是减轻代码负担的可能方法。谢谢你的建议,但是我有不同的数据类型用于表单元素,比如date、int、string等等。任何实施建议。