Я создал эту процедуру:Mysql хранимых процедуры и Php
DROP PROCEDURE IF EXISTS add_com;
DELIMITER //
CREATE PROCEDURE add_com (cd CHAR(16), n VARCHAR(20), t VARCHAR(20), i VARCHAR(20))
BEGIN
DECLARE num INT;
DECLARE msg varchar(20);
set @num=select COUNT(*) from commercianti where codice_fiscale=cd;
IF num==0 THEN
insert into commercianti values (cd,n,i,t);
set @msg="Commerciante inserito";
ELSE
insert into errors values (1);
set @msg="Commerciante presente";
END IF;
return @msg;
END; //
затем в PHP странице я выполняю этот код:
<?php
$cd=$_POST['codice_fiscale'];
$n=$_POST['nominativo'];
$t=$_POST['telefono'];
$i=$_POST['indirizzo'];
if(!$cd||!$n||!$t||!$i)
echo "No data";
else{
require dirname(__FILE__) . '/' . 'dbconfig.php';
$mysqli = new MySQLI(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
$result = $mysqli->query("CALL add_com('$cd','$n','$t','$i')");
echo $result;
}
?>
Но значение $ результата не определены и, кажется, порядок не работает или не вызывается.
Да, я был прийти к такому же выводу, но до сих пор не работает. Он ничего не возвращает и также не вставляет в commercianti или ошибку – Tres
@Tres: Я забыл отредактировать SELECT COUNT (*). Попробуйте вместо этого использовать инструкцию SELECT INTO (ответ отредактирован выше). –
Функция создается правильно, но когда она используется с php, ничего не происходит – Tres