Avatar billede apromis Praktikant
10. august 2011 - 00:36 Der er 8 kommentarer og
1 løsning

Anden database - kun i 1 function

Hej allesammen.

Jeg har en skide god kode som bare virker.
Problemet er at jeg gerne vil tilføje en function i denne kode mit i det hele. Denne function bruger en anden database.

Derfor vil det så således ud.

Database 1 connect 1 laves
De normale funktioner calles på database 1
MIN NYE funktion på database 2 calles og udføres
de normale funktioner forsætter på database 1.

Kan jeg ikke gøre noget smart i min funktion, således jeg ikke skifter database, og dermed ikke konflikter med de andre funktioner ?

Kan nogen løse denne ?

På forhånd tak.
Avatar billede arne_v Ekspert
10. august 2011 - 00:39 #1
Alle de database extensions jeg kender til PHP (inkl. mysql og mysqli) kan operere med en connection variabel og der er ikke noget problem i at have to connections i samme script.
Avatar billede apromis Praktikant
10. august 2011 - 00:43 #2
Hvordan vil du gøre dette ?
Jeg forsøger således :

Først
require_once "system/udtrak.php";

udtrak php :
$conn = mysql_connect("localhost","****","*****");
$db = mysql_select_db("***",$conn);
mysql_set_charset("utf-8");

function sel($hvad, $tabel, $hvilket) {
$find_res ="1";
$find = "select " .$hvad ." from " .$tabel ." where " .$hvilket;
$find_res = mysql_query($find) or die(mysql_error()); 
return $find_res;
}

function hent();
--> HER ALLE call sker

Den connection som er, er en anden database.

Alligevel tror koden at databasen hedder database1 trods den øverste ændring :(
Avatar billede arne_v Ekspert
10. august 2011 - 01:55 #3
mysql_query($find)

angiver ikke nogen connection
Avatar billede zynzz Praktikant
10. august 2011 - 09:14 #4
måske mysql_query($find, $conn)?
Avatar billede apromis Praktikant
10. august 2011 - 10:25 #5
Hej Begge.
Jeg forstår ikke helt.

I udtrak.php :
function hent() {

....
$find = sel($hvad, $tabel, $hvilket);
if (mysql_num_rows($find) == 1){
$row = mysql_fetch_array($find);

Den burde da forstå at det er den database i udtrak.php ?
Avatar billede apromis Praktikant
10. august 2011 - 10:35 #6
Jeg har også prøvet nedenstående :

if (mysql_num_rows($find, $conn) == 1){
$row = mysql_fetch_array($find, $conn);

Men som jeg kan se indeholder conn kun adgang til mysql og ikke selve databasen som ligger i $db.

$conn = mysql_connect("localhost","****","*****");
$db = mysql_select_db("***",$conn);
Avatar billede arne_v Ekspert
10. august 2011 - 14:59 #7
Hvis du skal tilgaa to databaser, saa skal du bruge to connections og groft sagt skal samtlige mysql kald have en connection med som argument.
Avatar billede apromis Praktikant
10. august 2011 - 16:55 #8
Har du mulighed for at uddybe med noget kode ? For er ikke helt med :)
Avatar billede MSI-AOC Nybegynder
12. august 2011 - 01:19 #9
Hvis databasen ligger på samme mysql server/instans, så er det jo bare at bruge mysql_select_db("database2");

f.eks., hvis de 2 databaser hedder db_et og db_to:

<?php

require_once "system/udtrak.php";

// [Her laver du de første kald til db_et]

mysql_select_db("db_to",$conn);

// [Her kalder du så den funktion det skal lave udtræk fra db_to]

mysql_select_db("db_et",$conn)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB