mysql_fetch_assoc()错误

时间:2012-09-20 10:09:23

标签: php mysql

  

可能重复:
  Warning when using mysql_fetch_assoc in PHP

我遇到以下代码的问题,我是遇到此错误的新手 这是代码

session_start();
$uname=$_SESSION['login'];

$host="localhost";
$username="root";
$password="";
$db_name="sampledb";
$tbl_name="tblsched";
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql = "SELECT * FROM tblteacher WHERE teacherName=$uname";
$result=mysql_query($sql);
$row = mysql_fetch_assoc($result);

$teacherid  = $row['teacherID'];

它给了我一个“mysql_fetch_assoc()期望参数1是资源,布尔”错误,我该如何处理这个错误?我已经在其他文件中使用过这段代码了几次,除了现在,我检查了行的名称,这是正确的

我已经尝试过使用其他命令,例如mysql_fetch_array,mysql_result,mysql_fetch_row,它会给出同样的错误

4 个答案:

答案 0 :(得分:5)

您似乎使用的是一个字符串变量,您需要将其封装在引号中:

SELECT * FROM tblteacher WHERE teacherName='$uname'

就此而言,我看到它来自一个Session变量,我认为它已经被清理以确保其中没有可能的注入攻击 - 是的?是的?

答案 1 :(得分:3)

尝试

$sql = "SELECT * FROM tblteacher WHERE teacherName='$uname'";

答案 2 :(得分:2)

问题出在这一行

$sql = "SELECT * FROM tblteacher WHERE teacherName=$uname";

更改为

$sql = "SELECT * FROM tblteacher WHERE teacherName='$uname'";

uname是字符串,应使用单引号或双引号引用。

答案 3 :(得分:0)

Try This // user index no 

session_start();
$uname=$_SESSION['login'];

$host="localhost";
$username="root";
$password="";
$db_name="sampledb";
$tbl_name="tblsched";
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql = "SELECT * FROM tblteacher WHERE teacherName=$uname";
$result=mysql_query($sql);
$row = mysql_fetch_assoc($result);

**$teacherid  = $row[0];** 
相关问题