ďťż

[mysql,php]połączenie mysql w kilku skryptach

       

Podstrony


telcocafe

jak wykorzystać jedno połączenie z bazą mysql w kilku skryptach php?
chodzi mi o coś takiego:
- w pierwszym skrypcie rozpoczynam połączenie i wybieram bazę
- w drugim skrypcie załatwiam swoje sprawy w tabelach
- w trzecim skrypcie zamykam połączenie.
jak próbowałem zrobić po swojemu przekazując identyfikator (czy jak to się tam nazywa) połączenia mysql to mi wyświetlało że niepoprawny parametr przekazany do funkcji.



Pokażę Ci to na przykładzie MySQLi:
skrypt1.php:
$db = @new mysqli('host', 'root', 'password', 'dbname');
skrypt2.php:
$res = @$db->query('SELECT * FROM some_tab'); //i tu obsługa wyników
skrypt3.php:
$db->close();

I w index.php:
<?php include 'skrypt1.php'; include 'skrypt2.php'; include 'skrypt3.php'; ?>

Jakbyś chciał dostać dostęp do zmiennej $db z poziomu pliku skrypt2.php, a ten wyświetlałby błędy, spróbuj dodać instrukcje
global $db;
Użytkownik Tomek92 edytował ten post 17 lipiec 2008, 15:29

skrypt1.php:
$db = @new mysqli('host', 'root', 'password', 'dbname');

ja muszę użyć mysql_connect bo muszę założyć, że baza nie została utworzona

poza tym skrypty nie powinny być połączone przez include (chyba, że nie ma innej możliwości). najlepiej byłoby, gdyby id połączenia mysql był przesyłany przez zmienną w adresie, ale jak dotąd nic mi z tego nie wyszło
Użytkownik czychacz edytował ten post 17 lipiec 2008, 16:32

ja muszę użyć mysql_connect bo muszę założyć, że baza nie została utworzona

poza tym skrypty nie powinny być połączone przez include (chyba, że nie ma innej możliwości). najlepiej byłoby, gdyby id połączenia mysql był przesyłany przez zmienną w adresie, ale jak dotąd nic mi z tego nie wyszło


1. $db = @new mysqli('host', 'root', 'password', 'dbname'); Ta instrukcja nie należy do standardowych od PHP 4. MySQLi to nowe narzędzie, w jego wypadku nie stosuje się funkcji mysql_connect(); Ale jak się upierasz przy dawnych funkcjach, zamiast tego wrzuć:
$db = mysql_connect($host, $user, $password); mysql_select_db($db_name);

Zamiast $db->query('SELECT * FROM some_tab');, wpisz $res = mysql_query($sql, $db);.
Natomiast na końcu wpisz mysql_close($db);

2. Zamiast includów w jednym pliku, możesz zastosować słowo global. Wtedy w skrypt2.php wpisujesz
include 'skrypt1.php';
i na końcu skrypt2.php:
include 'skrypt3.php';
Użytkownik Tomek92 edytował ten post 17 lipiec 2008, 18:08



poza tym skrypty nie powinny być połączone przez include (chyba, że nie ma innej możliwości). najlepiej byłoby, gdyby id połączenia mysql był przesyłany przez zmienną w adresie, ale jak dotąd nic mi z tego nie wyszło

Kiedyś palili na stosie za herezje. Kwalifikowałbyś się do spłonięcia. A jak chcesz rozdzielić w skrypcie np.klasy, funkcje, ustawienia? Pewnie w każdym pliku piszesz ją od nowa co nie? (bo po co include skoro jest taki "nieodpowiedni")

Zadałeś chyba najgłupsze pytanie w dzisiejszym dniu (jeżeli nei miesiącu) więc otrzymasz najlepszą i najgłupsza odpowiedź.
Uruchom program Mozilla Firefox (niektórzy mówią samo słowo "firefox" czyt. fajerfoks). W środku pojawi ci się coś takiego jak strona internetowa i w pole wyszukiwania (jak nie wiesz co to to musisz zadzwonic po kumpla) wpisz "połączenie mysql php" i kliknij na przycisk "Wyszukaj w google" (możesz też nacisnąć "Enter" ale lepiej nie bo jest do tego "nieodpowiedni"). Pojawi ci się lista znalezionych w internecie informacji na temat , chodź to zabrzmi niesamowicie ale tak właśnie jest, połączenia z bazą danych mysql w języku php!! Wow. W wyszukanych linkach znajdź ten, który ci najbardziej odpowiada. Jeżeli żaden ci nie odpowiada to użyj niniejszej wyszukiwarki forumowej i znajdz FAQ na temat php i tam jest WSZYSTKO wyjaśnione co do połączeń z mysql.

Ale zaraz... czemu chcesz wykorzystać tylko jedno połączenie? Nie sądzisz, że po wykonaniu jednego zapytania, połączenie to będzie "zabrudzone" przez jakieś wyniki i będziesz musiał użyc nowego!

A tak w skrócie pisząc. Zastosuj się do rady kolegów. A najlepiej ustanów permanentne połączenie (podpowiem ci... "mysql_pconnect") i nie będziesz musiał jego zamykać. Jeżeli otworzysz je w pierwszym skrypcie to każdy skrypt (po wywołaniu tej powyższje funkcji) bedzie miał połączenie z bazą danych.


- w drugim skrypcie załatwiam swoje sprawy w tabelach Ja swoje załatwiam w kiblu. A jeszcze iniejsze to z dziewczyną.


jak próbowałem zrobić po swojemu przekazując identyfikator (czy jak to się tam nazywa) połączenia mysql to mi wyświetlało że niepoprawny parametr przekazany do funkcji.
A może by tak kod? Do jakiej funkcji?
Użytkownik polasek edytował ten post 17 lipiec 2008, 18:28
polasek, coś taki sfrustrowany? :D te kilka skryptów potrzebne mi do odczytania raptem dwóch rekordów i żadnych skomplikowanych funkcji, ustawień, klas itp. itd. ma nie być. od tego to mam program. skrypty mają tylko wyświetlić mi to co może zostać upublicznione

Tomek92: dzięki za post ale dzisiaj już do serwera się nie dostanę. spróbuję jutro - może coś konkretnego wyjdzie


polasek, coś taki sfrustrowany?

Bo nie jestem w stanie powstrzymać moich myśli (i zażenowania) na temat "Bierze się za programowanie a nawet takich rzeczy nie umie wyszukać".

te kilka skryptów potrzebne mi do odczytania raptem dwóch rekordów i żadnych skomplikowanych funkcji, ustawień, klas itp. itd. ma nie być. No to po co to rozbijać na parę skryptów? Można w jednym.


od tego to mam program.

Program do... tworzenia "skomplikowanych" funkcji połączenia?

plik polaczenie.php (inicjujesz w nim połączenie z baza danych)
plik skrypt.php (includujesz (aż bałem się to słowo napisac) w nim plik polaczenie.php i realizujesz wyświetlenie dwóch rekordów)
Koniec.

już sobie poradziłem

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.