当前位置: 首页 > 知识库问答 >
问题:

错误消息“mysql\u connect():mysql扩展已弃用,将在将来的第6行中删除。”我如何修复它?[副本]

戚翰飞
2023-03-14

这是我的密码。我怎样才能修好它?错误消息如下所示

"已弃用:mysql_connect():mysql扩展已弃用,将来将被删除:在第6行的C:\wamp\www\test12345\db.php中改用mysqli或PDO"

如何创建没有错误的登录页面?我正在尝试创建一个具有安全登录会话?的网站?。我做得对吗?

db.php

<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "web";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Can't connect to database");
mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");

login.php

<?php
include("db.php");
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // username and password sent from Form
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);
    $password = md5($password); // Encrypted Password
    $sql = "SELECT id FROM admin WHERE username='$username' and passcode='$password'";
    $result = mysql_query($sql);
    $count = mysql_num_rows($result);

    // If result matched $username and $password, table row must be 1 row
    if ($count == 1) {
        session_register("username");
        $_SESSION['login_user'] = $username;

        header("location: welcome.php");
    } else {
        $error = "Your Login Name or Password is invalid";
    }
}
?>
<form action="login.php" method="post">
    <label>UserName :</label>
    <input type="text" name="username"/><br />
    <label>Password :</label>
    <input type="password" name="password"/><br/>
    <input type="submit" value=" Login "/><br />
</form>

共有1个答案

归松
2023-03-14

我还没有测试过这个,但是如果你想要一个如何将它转换为PDO的例子

<?php
    //really basic connection wrapper class
    class DB{
        protected $_conn;

        public function __construct(){
            $mysql_hostname = "localhost";
            $mysql_user = "root";
            $mysql_password = "";
            $mysql_database = "web";
            //http://php.net/manual/en/pdo.construct.php
            $this->_conn = new PDO(
                'mysql:host=' . $mysql_hostname . ';' . 'dbname=' . $mysql_database,
                $mysql_user,
                $mysql_password
            );
        }

        public function getConn(){
            return $this->_conn;
        }
        /*
        $bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Can't connect to database");
        mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");
        */
    }
?>

//any space or new lines here ( before the open PHP tag ) will prevent the redirect
<?php
ini_set('display_errors', 1); //turn on error reporting when developing
include("db.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST"){
    $DB = new DB();

    // username and password sent from Form
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $password = md5($password); // Encrypted Password - update this as others have stated
    $sql="SELECT id FROM admin WHERE username = ? and passcode = ?";
    //http://php.net/manual/en/pdo.prepare.php
    $stmt = $DB->getConn()->prepare($sql);
    //http://php.net/manual/en/pdostatement.execute.php
    $stmt->execute( array( $username, $password ) );
    //http://php.net/manual/en/pdostatement.fetchall.php
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // If result matched $username and $password, table row must be 1 row
    if(count( $results ) ){
        //session_register("username"); this is deprecated 
        $_SESSION['login_user']=$username;

        header("location: welcome.php");
        exit(); //add exit here
    }else {
        $error="Your Login Name or Password is invalid";
    }
}
?>
<form action="login.php" method="post">
<label>UserName :</label>
<input type="text" name="username"/><br />
<label>Password :</label>
<input type="password" name="password"/><br/>
<input type="submit" value=" Login "/><br />
</form>

对于重定向问题。不要使用session_register();如何修复session_register()弃用的问题?

 类似资料:
  • 我怎样才能解决这个问题。我已经环顾了这可能是php版本的问题,但仍然无法删除此错误消息。

  • 问题内容: 这个问题已经在这里有了答案 : 为什么我不应该在PHP中使用mysql_ *函数? (15个答案) 6年前关闭。 当我尝试从PHP连接到MySQL服务器时,出现以下错误: 不推荐使用:不推荐使用mysql扩展,以后将删除:在第123行的/path/to/filename.php中使用mysqli或PDO代替 引用行上的代码是: 我确信这些论点是正确的,并且这种确切的代码已经工作了多年没

  • 问题内容: 向MySQL发出命令时,出现错误#1064“语法错误”。 这是什么意思? 我该如何解决? 问题答案: 错误#1064表示MySQL无法理解您的命令。要解决这个问题: 阅读错误消息。 它 准确地 告诉您MySQL 在命令中哪里 混淆了。 检查您的命令。 如果您使用的编程语言来创建你的命令,使用,或同等学历,以显示 完整的命令 ,所以你可以看到它。 检查手册。 通过对MySQL的什么比较

  • 问题内容: 我有一个包含以下字段的表: 现在,我需要删除具有same的行。一种方法是使用以下SQL以及脚本( ): 运行此查询后,我可以使用服务器端脚本删除重复项。 但是,我想知道是否只能使用SQL查询来完成。 问题答案: 一种简单的方法是在3列上添加索引。在编写语句时,请包含关键字。像这样: 这将删除所有重复的行。作为一项额外的好处,重复的将来会出错。和往常一样,您可能需要在运行类似内容之前进行

  • 问题内容: 如果所有数据被意外删除,是否可以将表恢复为上一次数据。 问题答案: 还有另一种解决方案,如果服务器上有活动的二进制日志,则可以使用 用它生成一个sql文件 然后搜索您缺少的行。如果您没有激活它,则没有其他解决方案。下次进行备份。