【问题标题】:mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead [duplicate]mysql_connect():不推荐使用 mysql 扩展并将在将来删除:使用 mysqli 或 PDO 代替 [重复]
【发布时间】:2014-01-05 08:29:28
【问题描述】:
An error occurred in script 'C:\xampp\htdocs\framework\connect.php' on line 13: 
mysql_connect(): The mysql extension is deprecated and will be removed in the future: use       mysqli or PDO instead 
Date/Time: 12-17-2013 15:10:43 

我该如何解决这个问题。我环顾四周,这可能是 php 版本问题,但仍然无法删除此错误消息。

<?php

/* Database config */

$db_host        = 'localhost';
$db_user        = '~';
$db_pass        = '~';
$db_database    = 'banners'; 

/* End config */


$link = @mysql_connect($db_host,$db_user,$db_pass) or die('Unable to establish a DB     connection');

mysql_set_charset('utf8');
mysql_select_db($db_database,$link);

?>

【问题讨论】:

  • 使用mysqliPDO。结束了。
  • 真的吗?我很惊讶!我无法想象这会发生......
  • 阅读实际消息怎么样?

标签: php mysql


【解决方案1】:

简单地说,您需要重写所有数据库连接和查询。

您正在使用mysql_* 函数,这些函数现在已弃用,将来将从 PHP 中删除。所以你需要开始使用 MySQLi 或 PDO,就像错误通知警告你的那样。

使用 PDO 的基本示例(无错误处理):

<?php
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
$result = $db->exec("INSERT INTO table(firstname, lastname) VAULES('John', 'Doe')");
$insertId = $db->lastInsertId();
?>

使用 MySQLi 的基本示例(无错误处理):

$db = new mysqli($DBServer, $DBUser, $DBPass, $DBName);
$result = $db->query("INSERT INTO table(firstname, lastname) VAULES('John', 'Doe')");

这里有一个handy little PDO tutorial 可以帮助您入门。还有很多其他的,还有about the PDO alternative, MySQLi

【讨论】:

  • 您先生有我的 +1。好答案
  • 感谢您的帮助!我已经将我的 connect.php 重写为 mysqli,但在我的 demo.php 中如何将 mysql 转换为 mysqli?有什么办法可以做到这一点?我是php的初学者
  • @brianc,我不知道 demo.php 里面有什么代码。不幸的是,您只需要阅读我在答案中发布的教程并从中学习。如果你搜索,还有很多其他非常简单的 MySQLi 教程。
  • 在 INSERT 操作中不应使用 execquery。您应该使用准备好的语句。
【解决方案2】:
?php

/* Database config */

$db_host        = 'localhost';
$db_user        = '~';
$db_pass        = '~';
$db_database    = 'banners'; 

/* End config */


$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_database);
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

?>

【讨论】:

    猜你喜欢
    • 2014-12-29
    • 2016-09-28
    • 2012-12-06
    • 2017-08-20
    • 2014-04-04
    • 2014-11-11
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多