警告:mysql_error()期望参数1是资源,给定字符串

时间:2013-09-13 09:06:43

标签: php mysql database

<?php
 session_start();

 $username = "root";
 $password = "password";
 $database = "meipolytechnic";
 mysql_connect('localhost', $username,$password);
 @mysql_select_db($database) or die(mysql_error());


 $username=$_SESSION['MM_Username'];
 $query = "SELECT rollno FROM users where username = '".$username."'";
 $result = mysql_query($query) or die(mysql_error());
 $num = mysql_num_rows($result);

  mysql_close();

   $rows = array();

   while($r = mysql_fetch_row($result))

   {
    $rows[] = $r[0];
   }

   echo ($rows['rollno']);

   ?>

我想只从数据库中的users表中检索登录用户roll no#

当我运行此代码时

并以foo

登录

我得到以下内容

'where子句'中的未知列'foo'

8 个答案:

答案 0 :(得分:0)

要在字符串中使用数组,您需要在它之前和之后放置一个大括号 所以

$query = "SELECT rollno FROM users where username = {$_SESSION['MM_Username']}";

$query = "SELECT rollno FROM users where username = ".$_SESSION['MM_Username'];

答案 1 :(得分:0)

首先开始你的会议

session_start();

并像这样更改您的查询...

$query = "SELECT rollno FROM users where username = '".$_SESSION['MM_Username']."'";

答案 2 :(得分:0)

页面顶部应该有session_start()

查询需要更改为

$query = "SELECT rollno FROM users where username = '".$_SESSION['MM_Username']."' ";

修改

请在此处发布问题之前尝试一下。请谷歌或通过www.w3school.com清除此类问题。熟悉数组和mysql连接。并且mysql_query函数将无法使用最新的PHP版本。

请尝试以下代码。

$result = mysql_query($query) or die(mysql_error());
$rows = array();
while($r = mysql_fetch_row($result))
{
   $rows[] = $r[0];
}
print_r($rows); 

答案 3 :(得分:0)

尝试此查询

 $query = "SELECT rollno FROM users where username = ".$_SESSION[MM_Username]." ";

在同一页面上开始会话。

答案 4 :(得分:0)

首先使用start_session()

开始会话

然后更改您的查询:

$query = "SELECT rollno FROM users where username = ".$_SESSION['MM_Username'];

然后改变: $num = mysql_num_rows($result); instead of $num = mysql_numrows($result);

答案 5 :(得分:0)

您可以使用

     $username=$_SESSION[MM_Username];
     $query = "SELECT rollno FROM users where username = '".$username."'";

并使用session_start()

启动会话

并且您使用了两个结束标记,省略了一个如下所示

      echo ($rows['rollno']);
?>

答案 6 :(得分:0)

当查询变为错误时会发生此类错误

可能因为你没有开始会话,因为如果你没有session_start(),那么会话变量就没有了......只是试试

$query = "SELECT rollno FROM users where username = '".$_SESSION[MM_Username]."'";

这可以帮到你

答案 7 :(得分:0)

在代码中使用$ _SESSION变量之前,您必须使用session_start()。

所以在开始时将代码放在下面,

session_start();

然后在查询中做一些修改,比如

$query = "SELECT rollno FROM users where username = '".$_SESSION['MM_Username']."'";