1
這裏是我的存儲過程:存儲過程編寫的語句錯誤MySQL的PHP
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `testProc`(IN num INT, INOUT num2 INT(11))
BEGIN
set num2 = num+num2+7;
END
下面是調用它的代碼:
if ($stmt = mysqli_prepare($con, 'call testProc(?,?)')) {
mysqli_stmt_bind_param($stmt, 'ii', $type, $newId);
mysqli_stmt_execute($stmt);
echo $newId;
exit;
}
這是我的錯誤:
<b>Warning</b>: mysqli_stmt_execute(): Premature end of data (mysqlnd_wireprotocol.c:1116) in
我不明白。如此簡單的事情怎麼會失敗?當我嘗試設置一個簡單的示例時,我試圖找出如何使用存儲過程從準備好的語句中獲取值,當我跑到這個磚牆上時。請幫助,因爲直到我能解決這個問題,我不能提供一個例子,所以我不能解決我真正的問題。謝謝。
我嘗試添加一行:mysqli_stmt_bind_result($語句,$型,$ NEWID);但這只是導致「mysqli_stmt_bind_result():綁定變量的數量不匹配準備語句中的字段數」 – SteveC 2014-09-03 20:04:18
啊哈!我會在執行之前放置第二個綁定。現在它可以工作。謝謝你的幫助。 – SteveC 2014-09-03 20:20:22
我很高興!我正在編寫代碼,以使其更容易理解,但被困在會議中。 – michaelp 2014-09-04 15:36:29