如何解决无法将数据从mysql分配给会话数组
| 我有一个检查登录页面和后续代码;$sql = \"select * from users where username = \'$username\' and password = \'$password\'\";
$result = mysql_query($sql) or die ( mysql_error() );
if(mysql_num_rows($result)>0)
{
$line = mysql_fetch_assoc($result);
$count++;
}
if ($count == 1)
{
$_SESSION[\'login\'] = \"true\";
$_SESSION[\'username\'] = $username;
$_SESSION[\'usertype\'] = $line[\'type\'];
}
而且$ _SESSION [\'usertype \']即使在数据库中不同,也始终为1,我在做什么错
解决方法
我建议您在整个过程中进行一些调试。
在运行查询之前,请验证
$username
和$password
是否符合您的期望:
echo \"Username: {$username} Password: {$password}<br/>\";
验证查询是否返回正确的值:
$line = mysql_fetch_assoc($result);
echo \"<pre>\";
var_dump($line);
echo \"</pre>\";
如果这两个测试都返回了预期值,那么您可能必须调查会话-它是否已正确启动?是否在某处重置?
,$ line返回1,因为它是布尔值yes / no。找到一个结果,因此返回1。
您必须遍历$ line或直接使用$ line [0] [\'type \'];访问结果集#1;
或者只获取一行:
摘自手册:
**Example #1 Fetching one row with mysql_fetch_row()**
<?php
$result = mysql_query(\"SELECT id,email FROM people WHERE id = \'42\'\");
if (!$result) {
echo \'Could not run query: \' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
echo $row[0]; // 42
echo $row[1]; // the email value
?>
在这种情况下,如果您将选择更改为\“从用户中选择类型.... \”,而不是\“选择* \”
$line[0]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。