Autor Zpráva
Erixx
Profil
Zdravím vás,
prosím poradte mi, jak vnořit příkaz

require "db.php";

místo

$dbLink = new mysqli('localhost', 'db', 'pass', 'db');

do tohoto scriptu na uload files, abych se v něm připojil k databázi pouze souborem db.php a nemusel vypisovat údaje k přihlášení k databázi.

Děkuji moc za radu.

<?php
    // Check if a file has been uploaded
    if(isset($_FILES['uploaded_file'])) {
        // Make sure the file was sent without errors
        if($_FILES['uploaded_file']['error'] == 0) {
            // Connect to the database
    $dbLink = new mysqli('localhost', 'db', 'pass', 'db');
            if(mysqli_connect_errno()) {
                die("MySQL connection failed: ". mysqli_connect_error());
            }
     
            // Gather all required data
            $name = $dbLink->real_escape_string($_FILES['uploaded_file']['name']);
            $mime = $dbLink->real_escape_string($_FILES['uploaded_file']['type']);
            $data = $dbLink->real_escape_string(file_get_contents($_FILES  ['uploaded_file']['tmp_name']));
            $size = intval($_FILES['uploaded_file']['size']);
       
     
            // Create the SQL query
$_POST[cas]=date(" j.n.Y ");
            $query = "
                INSERT INTO `download` (
                    `name`, `mime`, `size`, `data`
                )
                VALUES (
                    '{$name}',  '{$mime}', {$size}, '{$data}'
                )";
     
            // Execute the query
            $result = $dbLink->query($query);
     
            // Check if it was successfull
            if($result) {
                echo '<b>OK, saved.';
            }
            else {
                echo 'Error! Failed to insert the file'
                   . "<pre>{$dbLink->error}</pre>";
            }
        }
        else {
            echo 'An error accured while the file was being uploaded. '
               . 'Error code: '. intval($_FILES['uploaded_file']['error']);
        }
     
        // Close the mysql connection
        $dbLink->close();
    }
    else {
        echo 'Error!';
    }
     
 

    ?>
     
     
Draffix
Profil *
Pokud chápu dobře, tak stačí v db.php nadefinovat pouze konstanty např.:
if ($_SERVER["SERVER_ADDR"]=="127.0.0.1")
{
  define("SQL_HOST","localhost");
  define("SQL_DBNAME","jmenoDatabaze");
  define("SQL_USERNAME","jmeno");
  define("SQL_PASSWORD","heslo");
}
else
{ ... }

A pak v kódu volat:
require "db.php";

$dbLink = new mysqli('SQL_HOST', 'SQL_DBNAME', 'SQL_PASSWORD', 'SQL_USERNAME');
shaggy
Profil
Draffix:
Takto asi moc konštanty nezavolá:
$dbLink = new mysqli('SQL_HOST', 'SQL_DBNAME', 'SQL_PASSWORD', 'SQL_USERNAME');
skôr:
$dbLink = new mysqli(SQL_HOST, SQL_DBNAME, SQL_PASSWORD, SQL_USERNAME);
Erixx
Profil
Mně jde o to, pokud je to vůbec u tohoto případu možné,
zbavit se v kodu tohoto řádku:
$dbLink = new mysqli('localhost', 'db', 'pass', 'db');
abych nemusel vypisovat ve scriptu údaje pro přihlášení k databázi, ale pouze vnořil připojení např tímto způsobem:
require "db.php";
s tím, že výraz $dbLink = by měl být zachován, protože se ve scriptu níže poté znovu objevuje.
Draffix
Profil *
Erixx:
Tak pak vytvoř spojení v v db.php a do nového souboru dej jen require db.php. V jednom budeš mít jak hodnoty pro připojení tak i samotné připojení a ve druhém pak s databází/souborem pracovat
mimochodec
Profil
Erixx:
Mně jde o to, pokud je to vůbec u tohoto případu možné,
zbavit se v kodu tohoto řádku:

Tak ten řádek dej ještě do toho db.php. Kde je problém?
Erixx
Profil
Draffix:

V souboru db.php mám klasicky napojení na databázi.
Ale nevím, jak mám uvedený script napojit na databázi přes require "db.php";
Ten autor napojuje na databázi právě pomocí mnou nechtěného řádku $dbLink = new mysqli('localhost', 'db', 'pass', 'db');
panther
Profil
Erixx:
tak nechteny radek musi byt v db.php, kam podle nazvu souboru asi i patri. To uz tu nekdo psal.

Pokud ho cely zkopirujes, tak v kodu za requirem bude v promenne $dbLink ono pripijeni k DB.
Erixx
Profil
OK,
problém vyřešen přidáním $dbLink = new mysqli('localhost', 'db', 'pass', 'db'); přímo do db.php
Děkuju všem za pomoc!
Draffix
Profil *
Erixx:
Jak už psal panther, pokud do db.php vložíš skript pro připojení k databázi:
$dbLink = new mysqli('localhost', 'db', 'pass', 'db');

tak pak když uvedeš require db.php tak už budeš mít přímé připojení bez nutnosti psát znovu tvůj nechtěný řádek (už bude v db.php)
Erixx
Profil
Draffix:
OK, už jsem to vyřešil přesně tímhle způsobem.
Díky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: