[PHP] problem med mysqli_select_db

Permalänk
Avstängd

[PHP] problem med mysqli_select_db

Tjo,

Har uppdatera till PHP 7.0 från PHP 5 så måste uppdatera koden i php så jag har byt ut från mysql_select_db till mysqli_select_db men då kan den inte läsa DBNAME men den kommer in i database gör den.

Så hur ska jag felsöka för att få svar på min fråga?

Code

$connection = mysqli_connect(DBHOST, DBUSER, DBPASSWORD); // Connection to database if (!$connection) // Return error if connection is broken { exit("<html><head></head><body><br />MySQL Error1!</body></html>"); } $db_connection = mysqli_select_db(DBNAME); // Select our database if (!$db_connection) // Return error if error happened with database { exit("<html><head></head><body><br />MySQL Error2!</body></html>"); }

Tacksam för alla tips!

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem
Skrivet av superegg:

Tjo,

Har uppdatera till PHP 7.0 från PHP 5 så måste uppdatera koden i php så jag har byt ut från mysql_select_db till mysqli_select_db men då kan den inte läsa DBNAME men den kommer in i database gör den.

Så hur ska jag felsöka för att få svar på min fråga?

Code

$connection = mysqli_connect(DBHOST, DBUSER, DBPASSWORD); // Connection to database if (!$connection) // Return error if connection is broken { exit("<html><head></head><body><br />MySQL Error1!</body></html>"); } $db_connection = mysqli_select_db(DBNAME); // Select our database if (!$db_connection) // Return error if error happened with database { exit("<html><head></head><body><br />MySQL Error2!</body></html>"); }

Tacksam för alla tips!

mysqli_select_db(DBNAME); skall vara mysqli_select_db($connection, DBNAME); vilket klart och tydligt framgår av dokumentationen

Permalänk
Avstängd
Skrivet av aluser:

mysqli_select_db(DBNAME); skall vara mysqli_select_db($connection, DBNAME); vilket klart och tydligt framgår av dokumentationen

Nu funkar den men nu har jag ett annat problem

$result = mysqli_query($connection, $query);

Vad kan det vara för fel här?

Får ut det här i error.

Invalid query : Invalid query : Invalid query : Invalid query :

såg fel
Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem
Skrivet av superegg:

Nu funkar den men nu har jag ett annat problem

$result = mysqli_query($connection, $query);

Vad kan det vara för fel här?

Får ut det här i error.

Invalid query : Invalid query : Invalid query : Invalid query :

Hade kanske underlättat om du skrivit ut vad som döljs i variablen $query

Permalänk
Medlem

har du definierat $query?

Visa signatur

Citera om du vill ha svar :)

Permalänk
Avstängd
Skrivet av dannesthlm:

Hade kanske underlättat om du skrivit ut vad som döljs i variablen $query

Förlåt mig lite trött.

Det här får jag ur den.

SELECT `value` FROM `b_config` WHERE `setting` = 'panelname' LIMIT 1SELECT `value` FROM `b_config` WHERE `setting` = 'panelversion' LIMIT 1SELECT `value` FROM `b_config` WHERE `setting` = 'clienttemplate' LIMIT 1SELECT `value` FROM `b_config` WHERE `setting` = 'maintenance' LIMIT 1

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem

ska det inte vara något såhär typ?

SELECT * FROM b_config WHERE setting='panelname' LIMIT 1 || SELECT * FROM b_config WHERE setting='panelversion' LIMIT 1 || SELECT * FROM b_config WHERE setting= 'clienttemplate' LIMIT 1 || SELECT * FROM b_config WHERE setting='maintenance' LIMIT 1

Visa signatur

Citera om du vill ha svar :)

Permalänk
Avstängd
Skrivet av pellski87:

ska det inte vara något såhär typ?

SELECT * FROM b_config WHERE setting='panelname' LIMIT 1 || SELECT * FROM b_config WHERE setting='panelversion' LIMIT 1 || SELECT * FROM b_config WHERE setting= 'clienttemplate' LIMIT 1 || SELECT * FROM b_config WHERE setting='maintenance' LIMIT 1

nä har kollat upp det ska vara så här.

SELECT * FROM b_config WHERE setting='panelname' LIMIT 1;SELECT * FROM b_config WHERE setting='panelversion' LIMIT 1;

Man måste ansluta med ; när det är flera man ska ha.

Måste dock hitta rätt ställe i php sen så kan jag ändra det jag återkommer om det kommer nya problem.

Tack för alla tips!

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Avstängd

Har provat dock så verka den inte funka på.

mysqli_query

Jag har provat med att lägga in en sql syntax funkar heller inte finns det någon test kod som man kan testa och se om det ens funkar?

function query_fetch_assoc($query) { $result = mysqli_query($connection, "SELECT `value` FROM `b_config` WHERE `setting` = 'panelname' LIMIT 1"); if ($result == FALSE) { $msg = 'Invalid query : '.mysqli_error($connection)."\n"; //echo $msg; echo $query; } return (mysqli_fetch_assoc($result)); } ?>

För $result blir aldrig true.

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem
Skrivet av superegg:

Har provat dock så verka den inte funka på.

mysqli_query

Jag har provat med att lägga in en sql syntax funkar heller inte finns det någon test kod som man kan testa och se om det ens funkar?

function query_fetch_assoc($query) { $result = mysqli_query($connection, "SELECT `value` FROM `b_config` WHERE `setting` = 'panelname' LIMIT 1"); if ($result == FALSE) { $msg = 'Invalid query : '.mysqli_error($connection)."\n"; //echo $msg; echo $query; } return (mysqli_fetch_assoc($result)); } ?>

För $result blir aldrig true.

Till att börja med: Enligt egen erfarenhet som (tidigare) utvecklare, skit i flärparna runt tabellfälten, i ditt fall value. Ger mest problem i olika cituationer även om exempelvis phpmyadmin brukar använda dem. Fungerar hur bra som helst utan. Ta även bort dem från tabellnamnet, i ditt fall b_config.

Tredje grejen: Hur får du in $connection när du lagt in koden i en funktion som du har gjort? Ska du göra på detta sättet brukar man behöva först ange $connection = ... någonstans OVANFÖR i koden. Sedan får du I FUNKTIONEN skriva:

global $connection;

Någonstans i början av funktionen, annars får du inte med värden in.

Permalänk
Medlem
Skrivet av dannesthlm:

Till att börja med: Enligt egen erfarenhet som (tidigare) utvecklare, skit i flärparna runt tabellfälten, i ditt fall value. Ger mest problem i olika cituationer även om exempelvis phpmyadmin brukar använda dem. Fungerar hur bra som helst utan. Ta även bort dem från tabellnamnet, i ditt fall b_config.

Tredje grejen: Hur får du in $connection när du lagt in koden i en funktion som du har gjort? Ska du göra på detta sättet brukar man behöva först ange $connection = ... någonstans OVANFÖR i koden. Sedan får du I FUNKTIONEN skriva:

global $connection;

Någonstans i början av funktionen, annars får du inte med värden in.

Ett ytterligare förtydligande:

Se även till så att du inte tilldelar $connection = ... inkapslat i någon funktion. Det borde iof gå att ordna med ytterligare en global-sats, själv hade jag dock liknande kod i separata filer i ett ramverks-liknande upplägg.

Permalänk
Avstängd
Skrivet av dannesthlm:

Till att börja med: Enligt egen erfarenhet som (tidigare) utvecklare, skit i flärparna runt tabellfälten, i ditt fall value. Ger mest problem i olika cituationer även om exempelvis phpmyadmin brukar använda dem. Fungerar hur bra som helst utan. Ta även bort dem från tabellnamnet, i ditt fall b_config.

Tredje grejen: Hur får du in $connection när du lagt in koden i en funktion som du har gjort? Ska du göra på detta sättet brukar man behöva först ange $connection = ... någonstans OVANFÖR i koden. Sedan får du I FUNKTIONEN skriva:

global $connection;

Någonstans i början av funktionen, annars får du inte med värden in.

Det är $connection som är problemet då $connection ligger utanför FUNKTIONEN och ligger läst upp i koden så gör jag för att det ska funka?

Jag testa och lägga $connection koden i FUNKTIONEN då funkar det.

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem

@superegg: Har du testat som han sade och lägga global $connection; i funktionen?

Varje funktion som använder samma variabel måste först i funktionen definiera 'global $connection;'. Annars använder funktionen en lokal variabel med samma namn istället.

Exempel:

function get_connection() { global $connection; $connection = mysqli_bla_bla(); } function mysqli_fetch_assoc() { global $connection; blobb = mysqli_query($connection, bla, blubb); }

Du fungerar också om du definierat $connection utanför någon funktion.

Permalänk
Avstängd
Skrivet av Tazavoo:

@superegg: Har du testat som han sade och lägga global $connection; i funktionen?

Varje funktion som använder samma variabel måste först i funktionen definiera 'global $connection;'. Annars använder funktionen en lokal variabel med samma namn istället.

Exempel:

function get_connection() { global $connection; $connection = mysqli_bla_bla(); } function mysqli_fetch_assoc() { global $connection; blobb = mysqli_query($connection, bla, blubb); }

Du fungerar också om du definierat $connection utanför någon funktion.

Fick det att funka igår gjorde som han sa jag la in global i en function och det funkar tack för hjälpen.

Hur ska man göra för att hämta $connection från en annan php fil?

Kan man använda

var_dump

till det håller på att läser mer om det.

PS: Håller inte på så jätte mycket när det gäller php håller mest på med C#.

Det verka funka nu upptäckte att jag ändra i fel php fil så jag såg inte om det funkar eller inte då jag kolla på fel php fil.
Men jag verka ha fått det att funka den lyckas hämta från $connection nu.

Trött har inte sovit så jätte bra på hela veckan.
Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem
Skrivet av superegg:

Fick det att funka igår gjorde som han sa jag la in global i en function och det funkar tack för hjälpen.

Hur ska man göra för att hämta $connection från en annan php fil?

Kan man använda

var_dump

till det håller på att läser mer om det.

PS: Håller inte på så jätte mycket när det gäller php håller mest på med C#.

Det verka funka nu upptäckte att jag ändra i fel php fil så jag såg inte om det funkar eller inte då jag kolla på fel php fil.
Men jag verka ha fått det att funka den lyckas hämta från $connection nu.

kan du inte göra en conn.php fil där du har din $connection variable sen include 'conn.php';? borde la funka

Visa signatur

Citera om du vill ha svar :)