Pereiti prie turinio

Deprecated: mysql_connect() problema


Rekomenduojami pranešimai

Sveiki, idiegiau svetaines skripta tačiau meta man errora.

 

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/user326sjk/domains/nelegalu.com/public_html/sexy/king-include/king-db.php on line 42

 

O 42 eilute yra tokia:

 

	$db=mysql_connect(QA_FINAL_MYSQL_HOSTNAME, QA_FINAL_MYSQL_USERNAME, QA_FINAL_MYSQL_PASSWORD);

 

Visas ifas:

 

if (!is_resource($qa_db_connection)) {
		if (QA_PERSISTENT_CONN_DB)
			$db=mysql_pconnect(QA_FINAL_MYSQL_HOSTNAME, QA_FINAL_MYSQL_USERNAME, QA_FINAL_MYSQL_PASSWORD);
		else
			$db=mysql_connect(QA_FINAL_MYSQL_HOSTNAME, QA_FINAL_MYSQL_USERNAME, QA_FINAL_MYSQL_PASSWORD);

		if (is_resource($db)) {
			if (!mysql_select_db(QA_FINAL_MYSQL_DATABASE, $db)) {
				mysql_close($db);
				qa_db_fail_error('select');
			}

 

Gal žinot kaip pataisyti ar pakeisti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki, idiegiau svetaines skripta tačiau meta man errora.

 

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/user326sjk/domains/nelegalu.com/public_html/sexy/king-include/king-db.php on line 42

 

O 42 eilute yra tokia:

 

	$db=mysql_connect(QA_FINAL_MYSQL_HOSTNAME, QA_FINAL_MYSQL_USERNAME, QA_FINAL_MYSQL_PASSWORD);

 

Visas ifas:

 

if (!is_resource($qa_db_connection)) {
		if (QA_PERSISTENT_CONN_DB)
			$db=mysql_pconnect(QA_FINAL_MYSQL_HOSTNAME, QA_FINAL_MYSQL_USERNAME, QA_FINAL_MYSQL_PASSWORD);
		else
			$db=mysql_connect(QA_FINAL_MYSQL_HOSTNAME, QA_FINAL_MYSQL_USERNAME, QA_FINAL_MYSQL_PASSWORD);

		if (is_resource($db)) {
			if (!mysql_select_db(QA_FINAL_MYSQL_DATABASE, $db)) {
				mysql_close($db);
				qa_db_fail_error('select');
			}

 

Gal žinot kaip pataisyti ar pakeisti?

 

Kaip ištaisyti? Yra du būdai:

1. Pakeisti visus mysql užklausas į mysqli arba PDO - rezultatas bus veikiantis web'as, bet tai užtruks.

2. Įsigyti serveri su php versija kuri palaiko mysql.

 

Asmeniškai pats rekomenduočiau 1-mą variantą, bet jeigu nepavyksta, tada pasiimti < 5.0 php versiją.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Čia ne erroras, o perspėjimas. Pasiskaityk apie PDO http://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059

Kitas būdas (nerekomenduojamas) yra paslėpti tokius pranešimus:

error_reporting(E_ERROR | E_PARSE);

Redagavo Gugiss
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jeigu žinočiau kaip pakeisti, bučiau nerašes posto. Gal galit padėti pakeisti? Nelabai temoku

Youtube.com > mysqli tutorial. Teks pamiršti paprastą mysql, nebesaugu naudoti. Siūlau naudoti mysqli objektiškai. Gali pasiskaityti daugiau ir čia - http://php.net/manual/en/mysqli.quickstart.dual-interface.php .

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kaip ištaisyti? Yra du būdai:

1. Pakeisti visus mysql užklausas į mysqli arba PDO - rezultatas bus veikiantis web'as, bet tai užtruks.

2. Įsigyti serveri su php versija kuri palaiko mysql.

 

Asmeniškai pats rekomenduočiau 1-mą variantą, bet jeigu nepavyksta, tada pasiimti < 5.0 php versiją.

 

Kodėl užtruks? Kelių min darbas, o jei skriptukas mažas, tai išvis nei minutės nereiks :).

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Priklauso koks script'as :) Nelabai čia veiks tas variantas, kad search & replace, o ypač su PDO perrašant ;)

Va čia tiksliai. mysqli gal ir turi atitinkamas funkcijas, kur gali daryti search/replace, PDO yra kita paradigma, kitoks API, ir t.t. Sėkmės pakeičiant didelę kodo bazę į visai kitokią API per kelias minutes. :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Va čia tiksliai. mysqli gal ir turi atitinkamas funkcijas, kur gali daryti search/replace, PDO yra kita paradigma, kitoks API, ir t.t. Sėkmės pakeičiant didelę kodo bazę į visai kitokią API per kelias minutes. :)

Visaip bandžiau išsireikšti, kad php freelanceriai suprastų, bet neišėjo.

Redagavo Deviltry
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Žmones... Kada suvoksit, kad PDO yra gėris, bet nuo mysql ant PDO pereiti užtrunka. Heck even from mysqli it's pain in the ######.

 

PDO turi naudoti IŠKART, o ne tada, kada jau yra padarytas script'as. Jei jau viskas gatava - geriau jau žaistis ir bandyti ant mysqli pereiti - bus papraščiau :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Naudoju PDO ir jis man patinka su mysqli neesu susipažinęs bet funkcijos kiek žinau yra labai panašios į PDO, bet visgi PDO yra geriau. Kuo PDO yra geriau už mysql funkcijas? Na visu pirma tai PDO yra labai gera apsauga nuo SQL injekcijų, teisingai naudojamas PDO panaikina sql injekcijos galimybes. Nors PDO yra ilgesnis kodas nei mysql bet man jis labiau patinka ir TIKRAI yra patogus. PDO gero naudojimo esmė -> naudoti prepare ir execute, taip pat viska keisti klaustukais, nes būtent klaustukai padaro PDO saugų. na pradėkim nuo PDO prisijungimo, jis yra ilgesnis nei mysql_funkciju.

<?php
$username = 'tavouser';
$password = 'tavopw';
try {
   $dbh = new PDO("mysql:host=localhost;dbname=tavoduombaze", $username, $password);
   echo '';
}
catch(PDOException $e)
   {
   echo $e->getMessage();
   } ?>

 

Na štai čia yra connectas prie MySql duomenų bazės. Dabar taisyklinga PDO užklausa turėtų atrodyti tokia pvz:

$test = $dbh->prepare("SELECT `l_time` FROM `users` WHERE `n`=?");
$test -> execute(array($n));

pats query nesikeičia tai gan panašu į mysql funkcijas tik pačios funkcijos kiek skiriasi. Bet jei naudojate mysql taip tada galite nesijaudinti dėl sql injekcijų nes viskas jau yra saugu ;) BET jei naudojate štai šitaip

$test = $dbh->prepare("SELECT `l_time` FROM `users` WHERE n=".$n);
$test -> execute();

tada patarčiau kuo greičiau tvarkytis nes palikote atviras skyles. ėsmė tokia, jeigu yra queryje "=" tai turi būti vietoj kintamojo naudojamas klaustukas "=?" o tie visi klaustukai iš eilės yra keičiami execute viduje array pagalba. tai tiek apie PDO. Patarčiau pereit dabar nes vėliau mysql_ funkcijos nebebus palaikomos

Redagavo Danielius5
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...