PDO eller mysqli

PHPportalen Forum Index » Databaser
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
webmaster



Medlem i: 6346 dagar
Från: Stockholm
Status: Offline



#742876
Inlägg Skrivet: 2020-12-05 01:06      Ämne: PDO eller mysqli Citera

Nu var det länge sen jag var här på phpportalen, men nu har jag fastnat.
Jag höll på lite grann med mysql men nu ska man helt plötsligt köra pdo eller mysqli.

Och dom har jag ingen aning hur man använder.

Jag får inte kontakt med min db i phpmyadmin, och jag har försökt nu i flera dagar men får det inte att funka.
Så nu hoppas jag att det finns några kvar här som kan hjälpa mig lite.

min class.dbquery.php
KOD:
1:
<?php
2:
class DBConnection
3:
{
4:
   private $DBASE="";
5:
   private $CONN="";
6:
 
7:
   public function DBConnections($server="localhost",$dbase="xxxxxxxxx", $user="root", $pass="xxxxxxxxxxxxxx")
8:
   {
9:
      $this->DBASE = $dbase;
10:
      $conn = mysqli_connect($server,$user,$pass);
11:
      if(!$conn) {
12:
         $this->MySQLDie("Connection attempt failed");
13:
      }
14:
      if(!mysqli_select_db($dbase,$conn)) {
15:
         $this->MySQLDie("Dbase Select failed");
16:
      }
17:
      $this->CONN = $conn;
18:
      mysql_query("SET NAMES 'utf8'",$conn);
19:
    mysql_query("SET character SET 'utf8'",$conn);
20:
    mysql_set_charset('UTF8',$conn);
21:
    //mb_internal_encoding("UTF-8");
22:
      return true;
23:
   
24:
   }



och så här så har min
KOD:
1:
include_once("common.php");

i index.php, och den vill inte heller synas.

i en annan fil som heter db_info.php så är kopplingen.

KOD:
1:
if($UpdateDatabase == 'yes')
2:
{
3:
   define( 'TSITE_SERVER',$hostName);
4:
   define( 'TSITE_DB',$databaseName);
5:
   define( 'TSITE_USERNAME',$userName);
6:
   define( 'TSITE_PASS',$passwordName);
7:
}
8:
else
9:
{
10:
   if($_SERVER["HTTP_HOST"] == "localhost")
11:
   {
12:
      define( 'TSITE_SERVER','localhost');
13:
      define( 'TSITE_DB','xxxxxxx');
14:
      define( 'TSITE_USERNAME','root');
15:
      define( 'TSITE_PASS','');
16:
   }
17:
   else
18:
   {
19:
      define( 'TSITE_SERVER','localhost');
20:
      define( 'TSITE_DB','xxxxxxx');
21:
      define( 'TSITE_USERNAME','root');
22:
      define( 'TSITE_PASS','');
23:
   }
24:
}


och den includeras i en fil defines.php

KOD:
1:
<?php
2:
//ini_set('display_errors',1);
3:
//ini_set('display_startup_errors',1);
4:
error_reporting(E_ALL & ~E_NOTICE);
5:
//error_reporting(0);
6:
 
7:
defined("_TEXEC") or exit("Restricted access");
8:
$parts = explode(DS, TPATH_BASE);
9:
define("TPATH_ROOT", TPATH_BASE);
10:
define("TPATH_CLASS", TPATH_ROOT . DS . "assets" . DS . "libraries/");
11:
 
12:
include_once "db_info.php";
13:
   
14:
define("PAYPAL_CLIENT_ID", "");
15:
define("PAYPAL_SECRET", "");
16:
if (!isset($obj)) {
17:
    require_once TPATH_CLASS . "class.dbquery.php";
18:
    $obj = new DBConnection(TSITE_SERVER, TSITE_DB, TSITE_USERNAME, TSITE_PASS);
19:
}
20:
if (!isset($generalobj)) {
21:
    require_once TPATH_CLASS . "class.general.php";
22:
    $generalobj = new General();
23:
}
24:
$generalobj->xss_cleaner_all();
25:
 
26:
$date_before = date("Y-m-d");
27:
$date_new = date("Y-m-d 00:00:00", strtotime("-1 week", strtotime($date_before)));
28:
define("WEEK_DATE", $date_new);
29:
define("SITE_TYPE", "Live");
30:
define("PAYMENT_OPTION", "Manual");
31:
define("SITE_COLOR", "#1fbad6");
32:
if (!isset($_SESSION["sess_lang"]) || $_SESSION["sess_lang"] == "") {
33:
    $_SESSION["sess_lang"] = $generalobj->get_default_lang();
34:
}
35:
$sql22 = "select vValue from configurations where vName='EASY_EDITING_TOKEN'";
36:
$db_config = $obj->MySQLSelect($sql22);
37:
$sql = "select vLabel,vValue,LanguageLabelId from language_label where vCode='" . $_SESSION["sess_lang"] . "'";
38:
$db_lbl = $obj->MySQLSelect($sql);
39:
foreach ($db_lbl as $key => $value) {
40:
    if (isset($_SESSION["sess_editingToken"]) && $_SESSION["sess_editingToken"] == $db_config[0]["vValue"]) {
41:
        $langage_lbl[$value["vLabel"]] = "<em class='label-dynmic'><i class='fa fa-edit label-i' data-id='" . $value["LanguageLabelId"] . "' data-value='main'></i>" . $value["vValue"] . "</em>";
42:
    } else {
43:
        $langage_lbl[$value["vLabel"]] = $value["vValue"];
44:
    }
45:
}
46:
$sql = "select vLabel,vValue,LanguageLabelId from language_label_other where vCode='" . $_SESSION["sess_lang"] . "'";
47:
$db_lbl = $obj->MySQLSelect($sql);
48:
foreach ($db_lbl as $key => $value) {
49:
    if (isset($_SESSION["sess_editingToken"]) && $_SESSION["sess_editingToken"] == $db_config[0]["vValue"]) {
50:
        $langage_lbl[$value["vLabel"]] = "<em class='label-dynmic'><i class='fa fa-edit label-i' data-id='" . $value["LanguageLabelId"] . "' data-value='other'></i>" . $value["vValue"] . "</em>";
51:
    } else {
52:
        $langage_lbl[$value["vLabel"]] = $value["vValue"];
53:
    }
54:
}
55:
$sql = "select vLabel,vValue from language_label where vCode='EN'";
56:
$db_lbl_admin = $obj->MySQLSelect($sql);
57:
foreach ($db_lbl_admin as $key => $value) {
58:
    $langage_lbl_admin[$value["vLabel"]] = $value["vValue"];
59:
}
60:
$sql = "select vLabel,vValue from language_label_other where vCode='EN'";
61:
$db_lbl_admin = $obj->MySQLSelect($sql);
62:
foreach ($db_lbl_admin as $key => $value) {
63:
    $langage_lbl_admin[$value["vLabel"]] = $value["vValue"];
64:
}
65:
define("RIIDE_LATER", "YES");
66:
define("PROMO_CODE", "YES");
67:
$SITE_VERSION = $generalobj->getConfigurations("configurations", "SITE_VERSION");
68:
$ALLOW_SERVICE_PROVIDER_AMOUNT = $generalobj->getConfigurations("configurations", "ALLOW_SERVICE_PROVIDER_AMOUNT");
69:
 
70:
?>


men som sagt så får jag ingen koppling till db och jag vet verkligen inte varför.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 5324 dagar
Från: Tavesta
Status: Offline



#742880
Inlägg Skrivet: 2020-12-07 13:27      Ämne: Citera

I filen defines.php bör $langage_lbl initialt sättas till en tom array. $langage_lbl = [];
innan man fyller på den med data.

Sök igenom alla filer efter "mysql_". De flesta av dessa funktioner har en motsvarighet vars namn börjar med "mysqli_"
De gör i regel exakt motsvarande sak, men turordningen på parametrarna brukar skilja sig åt.
Titta i manualen för mysqli

Det finns olika åsikter om huruvida mysqli eller pdo är att föredra
Mysqli har fördelen att det är mer likt gamla mysql_, men PDO har fördelen att den kan användas mot flera olika slags databaser. Använder man den blir det mindre att lära om och bygga om när man vill använda en annan typ av databas.
Själv tycker jag PDO är enklast, men det beror kanske bara på att jag är mer van vid den.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
webmaster



Medlem i: 6346 dagar
Från: Stockholm
Status: Offline



#742882
Inlägg Skrivet: 2020-12-07 13:55      Ämne: Citera

Hejsan..
Tackar för ditt svar, hjälpte mig mycket på traven, har bråkat med detta såååå länge.

Nu har jag min include_once kvar.

i mina index.php så har jag

KOD:
1:
<?php
2:
  include_once('common.php');


och i common.php så har jag:

KOD:
1:
define("TPATH_BASE", dirname(__FILE__));
2:
define("DS", DIRECTORY_SEPARATOR);
3:
require_once TPATH_BASE . DS . "assets" . DS . "libraries" . DS . "defines.php";


varje fil finns i den mappen som den ska vara, men ändå verkar den inte hittas. varför vet jag inte, har sökt men får inte till det.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 5324 dagar
Från: Tavesta
Status: Offline



#742883
Inlägg Skrivet: 2020-12-08 03:05      Ämne: Citera

Jag ser inte heller något fel i den koden. Det jag skulle prova är nog att byta ut require_once mot echo, och se om sökvägen fortfarande ser ut som du tänkt dig.

Jag fick faktiskt fel i nästan exakt likadan kod i Python härom veckan. Där var problemet att __FILE__ i vissa fall kunde returnera en relativ sökväg. Om den gör det så ger dirname() inte önskat resultat.
Då var min lösning att ta bort filnamnet ur __FILE__ med preg_replace, så att sista slashen i sökvägen lämnades kvar i TPATH_BASE.
Om det felet kan uppstå i PHP känner jag faktiskt inte till.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Databaser
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic