我在MySQL数据库中有一个表'帐号'(id,email,pass)。
我有存储过程:
DELIMITER $$
CREATE PROCEDURE `LoadAccount`(email_p VARCHAR(100))
BEGIN
SELECT pass FROM account WHERE email = email_p;
END$$
DELIMITER ;
这是代码:
function loadAccount($email, $pass)
{
// connect to DB
// ...
$query = "CALL LoadAccount('{$email}')";
if ($mysqli->multi_query($query))
{
do
{
if ($result = $mysqli->store_result())
{
// Numbered array.
while ($row = $result->fetch_array(MYSQLI_NUM))
{
printf("%s %s\n", $row[0]);
}
// Associative array.
// while ($row = $result->fetch_array(MYSQLI_ASSOC))
// {
// printf("%s\n", $row['pass']);
// }
$result->free();
}
$mysqli->more_results();
} while ($mysqli->next_result());
}
}
因此,编号数组部分可以工作,但如果我将其注释掉并取消注释关联数组部分 - 该页面只会挂起并失去连接。
为什么不起作用?
答案 0 :(得分:1)
不确定输入错误是否在您的代码中,但是:
printf("%s\n", $row[pass]);
应该是:
printf("%s\n", $row['pass']);
答案 1 :(得分:0)
好吧,对于像重新安装PHP这样奇怪的事情有帮助!至少这次是这样做的。