Connection til Mysql database driller?

Tags:    mysql php

Jeg har et problem som jeg ikke lige kan blive klog på - og håber nogle af jer kan hjælpe :)

Jeg har en hjemmeside med domæneA hvor jeg bruger en mysql database og henter nogle ting ud herfra med php.
Nu har jeg så hos samme udbyder og i samme webhotel tilkøbt mig endnu et domænenavn domæneB og jeg vil også her lave en side hvor jeg trækker ting ud fra samme mysql database.
Men det virker ikke umiddelbart?

Jeg bruger i "connect.php":
Fold kodeboks ind/udKode 


Jeg vil jo mene at jeg skal bruge nøjagtig samme kode på den nye side, da databasen er den samme.
Jeg kalder den sådan her:
Fold kodeboks ind/udKode 


Denne kode virker fint som den skal på domæneA - men giver altså problemer på domæneB
Jeg har Surftown som udbyder, og mine domæner ligger på samme webhotel

Hvad overser jeg?



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Et: connect:


<?php
$connect = mysql_connect('localhost', "user", "password");
mysql_select_db("user or dbname",$connect);
?> Drop @ :)

du skriver her: include_once('Connect.php'); //
Men du skriver i tråden med småt, måske ikke ens betydning med det er fejlen :)

Du vil også få en beskrivelse hvis du dropper de @.


$query = mysql_query("SELECT * FROM Databasen WHERE Billede != '' ORDER BY rand() DESC LIMIT 1") or die("Der er sket en fejl. Fejlnr. ".mysql_errno());

while ($row = mysql_fetch_array($query)) {

Ligger samme domæne så præcis på samme "webserver" for at forbinde evt. med localhost eller ip?.





Indlæg senest redigeret d. 10.01.2014 12:18 af Bruger #17554
Ved ikke helt om jeg forstår det hele.

Hvis jeg nu vil skrive den i mysqli istedet hvad skal jeg så skrive istedet for det her?
Fold kodeboks ind/udKode 


Min Connect.php vil jeg skrive sådan her:
Fold kodeboks ind/udKode 




du ved godt hvad @ gør ikke ?



Problem løst - fandt ud af at det nye domæne bare SKAL have mysqli - så derfor virkede det ikke med Mysql (sjovt når det nu ligger på samme webhotel)

og nej jeg ved faktisk ikke hvad @ gør :$



vig bort fra at bruge short_open_tag, det er slået fra pr default hos de fleste udbydere
ret alle <? til <?php
ref http://www.php.net/manual/en/ini.core.php#ini.short-open-tag

short_open_tag boolean
Tells PHP whether the short form (<? ?>;) of PHP's open tag should be allowed. If you want to use PHP in combination with XML, you can disable this option in order to use <?xml ?> inline. Otherwise, you can print it with PHP, for example: <?php echo '<?xml version="1.0"?>'; ?>. Also, if disabled, you must use the long form of the PHP open tag (<?php ?>;).


vig bort fra at bruge mysql API brug mysqli API eller PDO API istedet
det gamle mysql API er ikke understøttes i kommende vertioner af PHP, og allerrede nu få du en adversen når du anvender mysql_connect hvis du har opdateret din PHP og slået vis advarsler til

læs http://dk.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated

ref http://php.net/manual/en/mysqlinfo.api.choosing.php

Recommended API
It is recommended to use either the mysqli or PDO_MySQL extensions. It is not recommended to use the old mysql extension for new development, as it has been deprecated as of PHP 5.5.0 and will be removed in the future. A detailed feature comparison matrix is provided below. The overall performance of all three extensions is considered to be about the same. Although the performance of the extension contributes only a fraction of the total run time of a PHP web request. Often, the impact is as low as 0.1%.


@ undertrykker fejl beskeden
http://www.php.net/manual/en/language.operators.errorcontrol.php

under udvikling: vis så mange fejl og advarsler som muligt og ret disse.
i produktion: skjul så mange fejl og advarsler som muligt (reger ikke brugeren), nogle fejl og advarsels beskeder kan være guf for uheldige elementer

include_once: jeg vil anbefale at bruge require_once
http://php.net/manual/en/function.require-once.php
når filen er så vigtig som en connect.php

Fold kodeboks ind/udKode 

læg mærke til at mysql_ er blevet til mysqli_
læg mærke til at mysqli_query($mysqli, "... ) har fået din mysqli connection som første parameter

i det gamle mysql var det anden parameter hvis man ikke anvendte den super globale default connection
man så det skrevet som
mysql_query($sql); // anvender default connection
eller
mysql_query($sql, $conn); // anvender en named connection, er bare en normal variabel




t