【问题标题】:PHP MYSQL connection variable does not exist? When it does [duplicate]PHP MYSQL 连接变量不存在?当它发生时[重复]
【发布时间】:2013-12-21 11:57:13
【问题描述】:

每当我尝试登录我的网站时,它总是会出现:

注意:未定义变量:第 13 行 P:\xampp\htdocs\CraftedLogin\authenticate.php 中的 conn

警告:mysql_query() 期望参数 2 是资源,给定 null 在第 13 行的 P:\xampp\htdocs\CraftedLogin\authenticate.php 中

警告:mysql_num_rows() 期望参数 1 是资源,null 在第 16 行的 P:\xampp\htdocs\CraftedLogin\authenticate.php 中给出 错误的用户名或密码!无法以 gfg 身份登录

这是我的代码:

<?php

$username = $_POST['username'];
$password = $_POST['password'];
include("dbConfig.php");

$sql = "SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$password'";

$rs = mysql_query($sql,$conn);

$num = mysql_num_rows( $rs );

if( $num != 0 )
{ 
  $msg = "<h3>Welcome $username - your log-in succeeded!</h3>";
}
else
{
  $msg = "Wrong username or password! Cannot login as $username";
}
?>

<html>

 <head>
  <title>Log-In</title>
  </head>

  <body>
   <?php echo( $msg ); ?>
  </body>

</html>

这也是我的 dbConfig.php:

<?
$host = "localhost";
$user = "CraftedLogin";
$pass = "craftedlogin";
$db = "craftedlogin";
$self =     $_SERVER['PHP_SELF'];
$referer =  $_SERVER['HTTP_REFERER'];
$connection = mysql_connect($host, $user, $pass);
if ( !$conn )
{
echo "Error connecting to database.\n";
}
$rs = @mysql_select_db( $db, $conn ) 
        or die( "Could not select database" );
?>

谁能帮帮我?

注意:我尝试将 $connection 更改为 $conn,但这次使用 $num 变量仍然会出错,但我想我可以快速解决这个问题。

新代码:

<?php

$username = $_POST['username'];
$password = $_POST['password'];
include("dbConfig.php");

$sql = "SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$password'";

$rs = @mysql_select_db( $db, $conn );

$numr = mysql_num_rows( $rs );

if( $numr != 0 )
{ 
  $msg = "<h3>Welcome $username - your log-in succeeded!</h3>";
}
else
{
  $msg = "Wrong username or password! Cannot login as $username";
}
?>

<html>

 <head>
  <title>Log-In</title>
  </head>

  <body>
   <?php echo( $msg ); ?>
  </body>

</html>

和dbConfig.php:

<?
$host = "localhost";
$user = "CraftedLogin";
$pass = "craftedlogin";
$db = "craftedlogin";
$self =     $_SERVER['PHP_SELF'];
$referer =  $_SERVER['HTTP_REFERER'];
$conn = mysql_connect($host, $user, $pass);
if ( !$conn )
{
echo "Error connecting to database.\n";
}
$rs = @mysql_select_db( $db, $conn ) 
        or die( "Could not select database" );
?>

【问题讨论】:

  • 将$connection = mysql_connect($host, $user, $pass);更改为$conn = mysql_connect($host, $user, $pass);

标签: php html mysql


【解决方案1】:

改变

$connection = mysql_connect($host, $user, $pass);

到

$conn = mysql_connect($host, $user, $pass);

这就是它不起作用的原因。你使用了错误的变量名。

编辑: 这可能就是你想要的:

$sql = "SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$password'";

$result = mysql_query( $sql, $conn );

$numr = mysql_num_rows( $result );

【讨论】:

  • 试过还是不行
  • 您收到的错误是否与您的问题相同?
  • 没有。它给出:警告:mysql_num_rows() 期望参数 1 是资源,在第 11 行的 P:\xampp\htdocs\CraftedLogin\authenticate.php 中给出 null 请参阅上述问题中的新代码
  • 当我改变
  • 您已经在配置文件中设置了 $rs 变量。它适用于'@mysql_select_db($db,$conn);'。当您将该函数传递给它时,您无法选择行数。请参阅我对已编辑代码的回答。
【解决方案2】:

您的连接是$connection,而您在其他任何地方都使用$conn。

【讨论】:

    【解决方案3】:

    在这段代码中:

    $rs = @mysql_select_db( $db, $conn ) or die( "Could not select database" );
    

    您正在传递 $conn,但您的连接被定义为 $connection。将其更改为:

    $rs = @mysql_select_db( $db, $connection) or die( "Could not select database" );
    

    将解决此问题。

    【讨论】:

      【解决方案4】:

      修复:

      $conn = mysql_connect($host, $user, $pass);
      

      【讨论】:

        【解决方案5】:
        $connection = mysql_connect($host, $user, $pass);
        

        改成

        $conn = mysql_connect($host, $user, $pass);

        【讨论】:

          猜你喜欢
          • 2012-06-18
          • 2017-07-25
          • 1970-01-01
          • 1970-01-01
          • 2012-01-04
          • 2017-08-13
          • 2014-05-13
          • 1970-01-01
          • 2014-03-11
          相关资源
          最近更新 更多