首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未选择获取错误数据库

未选择获取错误数据库
EN

Stack Overflow用户
提问于 2012-10-19 12:13:19
回答 2查看 571关注 0票数 0

代码:

代码语言:javascript
复制
<?php
session_start();
$_SESSION['msg'] = "";
$con = mysql_connect('localhost','me','omglol');
mysql_select_db('test',$con);
$q = mysql_query(sprintf("select * from UserTable where (nick=\"%s\") AND (pass=SHA1(\"%s\"))",$_POST['nick'],$_POST['pass']),$con) or die(mysql_error());

在我看来这是对的。是的,我知道'test‘的存在。并包含UserTable。

首先,感谢rid将php4添加到我忘记的标记中:(

根据激光向导的建议,我执行了以下操作:(完整代码):

代码语言:javascript
复制
<?php
session_start();
$_SESSION['msg'] = "";
$con = mysql_connect('localhost','me','omglol');
if(!$con)
{
    die("The connection to mysql server is not being made.");
}
$db = 'test';
$selected = mysql_select_db($db,$con);
if(!$selected)
{
    die(sprintf("Cannot use database %s.",$db));
}
//$q = mysql_query(sprintf("select * from UserTable where (nick=\"%s\") AND (pass=SHA1(\"%s\"))",$_POST['nick'],$_POST['pass']),$con) or die(mysql_error());
$q = mysql_query("select * from UserTable",$con) or die("The query statement still isn't working");
$row = mysql_fetch_assoc($q);
$dest=0;
if(mysql_num_rows($q)==0)
{
    //$testn = mysql_query(sprintf("select * from UserTable where nick=(\"%s\")",$_POST['nick']),$con);
        $testn = mysql_query("select * from Category",$con) or die("The 2nd query statement still isn't working");
        if(mysql_num_rows($testn)==0)
        {
               $_SESSION['msg'] = "Nick ".$_POST['nick']." was not found. Check spelling or <a href=\\\"register.php\\\">register</a>";
        }
        else
        {
                $_SESSION['msg'] = "Password incorrect";
        }
        if(isset($_SESSION['attempts']))
        {
                $_SESSION['attempts'] = $_SESSION['attempts'] + 1;
        }
        else
        {
                $_SESSION['attempts'] = 1;
        }
    mysql_free_result($q);
    mysql_free_result($testn);
        mysql_close($con);
    $dest = 'Location:http://cs4.sunyocc.edu/~me/onestopshop/login.php';
}
else
{
        $_SESSION['nick'] = $_POST['nick'];
    $_SESSION['email'] = $row['email'];
    mysql_free_result($q);
    mysql_close($con);
    $dest = 'Location:http://cs4.sunyocc.edu/~me/onestopshop/index.php';
}
header($dest);
exit();
?>

与上面的错误相同。所以设置了$con并且$selected读取为真,所以我不知道下一步要检查什么。我猜是mysql_select_db($db,$con);也不是$testn仍然不能工作,但仍然读起来是真的?我不知道下一步该怎么做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-19 12:19:36

抛出一些die语句来测试连接,并确保它正在建立。除此之外,我会说注释掉您的查询行,看看这是否会导致问题。

代码语言:javascript
复制
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}
票数 1
EN

Stack Overflow用户

发布于 2012-10-19 12:24:48

如果您使用的是PDO 5.1.0,请忽略这些说明,使用>=:

代码语言:javascript
复制
<?php
    $conn = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
    foreach($conn->query('SELECT * from TEST') as $row) {
        print_r($row);
    }
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12967295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档