我遇到以下代码的问题,我是遇到此错误的新手 这是代码
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,它会给出同样的错误
答案 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];**