-1
PHPでストアドプロシージャを実行する際に問題があります。PHP 7がMySQL 5.7からプロシージャを実行するエラー
私の手順は次のとおりです。
create procedure test_procedure()
BEGIN
select yf_f_get_msg(-2);
END
私の機能は次のとおりです。
create function `yf_f_get_msg`(`p_sql_state` int(11))
returns text
BEGIN
declare specialty condition for sqlstate '45000';
if p_sql_state < 0 then
signal specialty set message_text = 'It is just error';
end if;
return 1;
END
私の手順が機能し、私の関数の戻り値の例外(信号エラー)を実行します。
PHPコード
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', 'root', null);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$sth = $dbh->prepare('call test_procedure()');
$sth->execute();
だから、私はブラウザにロードページを傾けます。 http://joxi.net/brRjzzWCpvbYr1
使用mysqliの接続あなたは(yf_f_get_msg(-2)を選択)このhttp://joxi.net/a2XDzzRizYY62g