Как использовать хранимую процедуру для входа в php - PullRequest
0 голосов
/ 28 мая 2018

Я новичок в php и пытаюсь научиться использовать хранимую процедуру.У меня есть эта хранимая процедура (mysql):

CREATE DEFINER=`root`@`localhost` PROCEDURE `get_dati_user`(
 IN  v_Mail_UT VARCHAR(45),
 IN  v_PW_UT VARCHAR(20),
 OUT v_Cod_Workgroup VARCHAR(25),
 OUT v_Nome_UT VARCHAR(25),
 OUT v_Cog_UT VARCHAR(25),
 OUT v_Permessi_Utente VARCHAR(45),
 OUT v_Data_Iscrizione VARCHAR(45),
 OUT v_Tel_UT VARCHAR(45),
 OUT v_count int
)
BEGIN

select count(1) into v_count 
from t_utenti where login=v_login and pwd =v_pass;

if (v_count >0) THEN
 SELECT
     `tab01_utenti`.`Cod_Workgroup`,
     `tab01_utenti`.`Nome_UT`,
     `tab01_utenti`.`Cog_UT`,
     `tab01_utenti`.`Permessi_Utente`,
     `tab01_utenti`.`Data_Iscrizione`,
     `tab01_utenti`.`Tel_UT`

  into
		v_Cod_Workgroup,
		v_Nome_UT,
		v_Cog_UT,
		v_Permessi_Utente, 
		v_Data_Iscrizione, 
        v_Tel_UT
  
  FROM tab01_utenti where v_Mail_UT=Mail_UT and v_PW_UT=PW_UT;
END IF;

И мне нужно написать php-скрипт для включения в мою html форму входа.Может кто-то помочь мне, пожалуйста?Я уже установил соединение с базой данных, но не понимаю, как продолжить.Я пробовал с:

<?php  
include 'connectdb.php';
error_reporting(E_ALL);
ini_set('display_errors', 'On');


$sql = 'CALL get_dati_user(?, ?)';
$stmt = $conn->prepare($sql);

// username and password sent from form 
$v_Email_UT=$_POST['v_Email_UT']; 
$v_PW_UT=$_POST['v_PW_UT']; 

$stmt->bindParam(1, $v_Email_UT, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 45);
$stmt->bindParam(2, $v_PW_UT, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 20);
$stmt->bindParam(3, $v_Cod_Workgroup, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 25);
//$stmt->bindParam(4, $v_Nome_UT, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 25);
//$stmt->bindParam(5, $v_Cog_UT_UT, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 25);
//$stmt->bindParam(6, $v_Permessi_Utente, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 45);
//$stmt->bindParam(7, $v_Data_Iscrizione, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 45);
//$stmt->bindParam(8, $v_Tel_UT, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 45);
//$stmt->bindParam(9, $v_count, PDO::PARAM_INT, 10);

$stmt->execute();



?>

Но я получаю сообщение об ошибке «SQLSTATE [HY093]: недопустимый номер параметра: число связанных переменных не соответствует количеству токенов».Могу ли я получить помощь, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...