[PHP] problem med mysqli_select_db

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016

[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!

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

Trädvy Permalänk
Medlem
Registrerad
Apr 2013
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

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016
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

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

Trädvy Permalänk
Medlem
Registrerad
Sep 2011
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

Trädvy Permalänk
Medlem
Plats
Piteå
Registrerad
Okt 2004

har du definierat $query?

CPU: AMD Ryzen 1700x @ 3.8GHz || Mem: 16GB Corsair LPX 3000mhz || Mobo: Asus x370 Prime || GPU: EVGA Geforce GTX1070 SC || SSD: WD black 500GB m2 || OS: Linux Mint/Win 10 || Monitor: Dell 43" 4K P4317Q

Citera om du vill ha svar :)

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016
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

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

Trädvy Permalänk
Medlem
Plats
Piteå
Registrerad
Okt 2004

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

CPU: AMD Ryzen 1700x @ 3.8GHz || Mem: 16GB Corsair LPX 3000mhz || Mobo: Asus x370 Prime || GPU: EVGA Geforce GTX1070 SC || SSD: WD black 500GB m2 || OS: Linux Mint/Win 10 || Monitor: Dell 43" 4K P4317Q

Citera om du vill ha svar :)

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016
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!

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

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016

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.

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

Trädvy Permalänk
Medlem
Registrerad
Sep 2011
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.

Trädvy Permalänk
Medlem
Registrerad
Sep 2011
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.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016
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.

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

Trädvy Permalänk
Medlem
Plats
Finland
Registrerad
Maj 2004

@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.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016
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.

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

Trädvy Permalänk
Medlem
Plats
Piteå
Registrerad
Okt 2004
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

CPU: AMD Ryzen 1700x @ 3.8GHz || Mem: 16GB Corsair LPX 3000mhz || Mobo: Asus x370 Prime || GPU: EVGA Geforce GTX1070 SC || SSD: WD black 500GB m2 || OS: Linux Mint/Win 10 || Monitor: Dell 43" 4K P4317Q

Citera om du vill ha svar :)