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

时间:2015-06-07 16:36:21

标签: php forms stored-procedures pdo

我必须将数据插入到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的新手,如果你能用一个例子来解释它会很棒。

0 个答案:

没有答案