-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'";

これ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 に答える