使用存储过程列出记录

时间:2010-08-08 08:07:26

标签: php mysql stored-procedures

  

可能重复:
  Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given error

我正在进行一些关于mysql存储过程的练习。 这是调用它的php文件:

<?php
include('conn.php');
$cor=$_POST['course'];
$sql="CALL list('$cor')";
$result=mysql_query($sql);



?>

<table>
<tr>
<th>Name</th>
<th>Course</th>
</tr>

<?php 
while($row=mysql_fetch_assoc($result)){
?>
<tr>
<td><?php echo $row['Name']; ?></td>
<td><?php echo $row['Course']; ?></td>
</tr>

<?php } ?>

</table>

这是存储过程,当我在heidi sql中执行它时效果很好:

CREATE PROCEDURE `list`(IN `COR` VARCHAR(50))
    LANGUAGE SQL
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
SELECT * 

FROM tb1 
WHERE Course=COR;

END

请告诉我如何调试这个, 我有这样的错误:

  

mysql_fetch_assoc()需要参数   1是资源,布尔在

中给出

我怀疑我的查询有问题。请帮忙。

2 个答案:

答案 0 :(得分:1)

让MySQL告诉你问题是什么

$result=mysql_query($sql);
if ( !$result ) {
  echo 'an error occurred: ', htmlspecialchars(mysql_error()), 
    '<br />The query was: ', htmlspecialchars($sql);
  die;
}

请参阅http://docs.php.net/mysql_error

答案 1 :(得分:0)

似乎ext / mysql使用存储过程变得麻烦(有人说不可能)。建议使用ext / mysqli(我个人使用的是mysqli,实际上它可以在存储过程中正常工作)

在MySQL论坛上查看此主题:http://forums.mysql.com/read.php?52,59458,185092#msg-185092