-1

可能重复:
在 PHP 中使用 mysql_fetch_assoc 时出现警告

我在使用以下代码时遇到问题,我是遇到此错误的新手这里是代码

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

4 回答 4

5

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

SELECT * FROM tblteacher WHERE teacherName='$uname'

在那张纸条上,我看到它来自 Session 变量,我认为它已经被清理以确保其中没有可能的注入攻击 - 是吗?

于 2012-09-20T10:10:21.293 回答
3

尝试

$sql = "SELECT * FROM tblteacher WHERE teacherName='$uname'";
于 2012-09-20T10:10:31.887 回答
2

问题出在这一行

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

改成

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

is 字符串,uname它应该使用单引号或双引号引起来。

于 2012-09-20T10:13:30.613 回答
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];** 
于 2012-09-20T13:28:18.127 回答