sql >> Databasteknik >  >> RDS >> Mysql

Utfasade MySql-funktioner

Det kommer bara att vara meningslöst.
Enbart mekaniskt byte kommer inte att göra någon nytta.

Du måste förstå att det inte är gamla funktioner i sig, men gamla sätt att använda dem avråds från.

Så om du vill behålla din nuvarande kod som den är - behåll den bara.
En röd ruta i manualen är inte det skrämmande, och versionen där dessa funktioner faktiskt finns skulle ge upphov till ett föråldrat felnivå ännu.
Så du har 3-4 år på dig innan du kommer att stöta på besvär. Och även då att stänga av föråldrade fel är en fråga om en körtidsinställning.

Men om du vill skriva den bättre koden - måste du använda OOP way med PDO (och jag kan försäkra dig om att OOP inte är det skrämmande. Även om det kräver viss kunskap när man skriver, är det väldigt lätt att använda en färdig klass. Den enda skillnaden från bekanta funktioner är lite -> sak. Ingen stor sak)

Så, varsågod:

function db_connect_select() 
{
    $dsn = 'mysql:host='.MYSQL_HOSTNAME.';dbname='.DATABASE.';charset=utf8';
    $opt = array(
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ); 
    return new PDO($dsn,USERNAME_SELECT, PASSWORD, $opt);
}

function db_result_to_array($query,) 
{
  // not needed with PDO
}

function select_top_tags()
{
    global $pdo;

    $query = 'SELECT * FROM top_tags ORDER BY tag_name ASC';
    $stm = $pdo->prepare($query);
    $stm->execute();
    return $stm->fetchAll();
}

användning:

$pdo = db_connect_select(); // somewhere in a bootstrap file
$tags = select_top_tags();


  1. Codeigniter db->update() VS MySQL native UPDATE Berörda rader:0

  2. Statisk vs dynamisk sql

  3. Hur man listar tabell främmande nycklar

  4. Entity Framework + MySQL - Varför är prestandan så hemsk?