• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Połączenie z bazą danych nie działa, tylko w tym kodzie

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
+3 głosów
411 wizyt
pytanie zadane 4 kwietnia 2015 w PHP przez shadax Obywatel (1,850 p.)

Mam taki kod:

Formularz:

<html>

<body>

<form method="post" action="skrypt.php">
<input type="submit" value="Klik" name="submit">
</form>


</body>


</html>

skrypt.php:

<?php
function display()
{
echo "Sukces!";
}
if(isset($_POST['submit']))
{
display();

?>

 No i mam problem, bo jak chcę wszystko połączyć z UserCake albo bazą danych (po echo "Sukces!";) to występują errory, np.:

Fatal error: Call to a member function prepare() on null in C:\...\xampp\htdocs\userCakeV2.0.2\models\config.php on line 9

Ten kod, to połączenie z bazą danych, która na wszystkich stronach oczywiście działa, tylko nie tutaj :(

 

Ma ktoś jakieś pomysły?

2 odpowiedzi

+2 głosów
odpowiedź 4 kwietnia 2015 przez toaspzoo Dyskutant (8,300 p.)
wybrane 4 kwietnia 2015 przez Mirosław Zelent
 
Najlepsza
Jeśli korzystasz z pdo, to wygląda na to, że instancja pdo nie została zainicjalizowana.
komentarz 4 kwietnia 2015 przez shadax Obywatel (1,850 p.)

A można to w jakiś sposób zainicjować?

Tak wygląda ten początek kodu:

require_once("db-settings.php");


$stmt = $mysqli->prepare("SELECT id, name, value
    FROM ".$db_table_prefix."configuration");    //Tutaj właśnie kod wyrzuca error

Normalnie cały kod działa, ale jak wrzucam go do

function display() 


To pojawia się ten błąd

komentarz 4 kwietnia 2015 przez toaspzoo Dyskutant (8,300 p.)

Plik db-settings.php jak wygląda (tylko zakryj hasła :P)?

 

komentarz 4 kwietnia 2015 przez shadax Obywatel (1,850 p.)

$db_host = "localhost"; //Host address (most likely localhost)
$db_name = "mysqli"; //Name of Database
$db_user = "root"; //Name of database user
$db_pass = ""; //Password for database user
$db_table_prefix = "uc_";

GLOBAL $errors;
GLOBAL $successes;

$errors = array();
$successes = array();


$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);
GLOBAL $mysqli;

if(mysqli_connect_errno()) {
    echo "Connection Failed: " . mysqli_connect_errno();
    exit();
}

komentarz 4 kwietnia 2015 przez toaspzoo Dyskutant (8,300 p.)

Po co to tam GLOBAL $mysqli?

function display()  

Global $mysqli;

 

}

Tutaj wrzuć Global $mysqli; i powinno działać :)

komentarz 4 kwietnia 2015 przez toaspzoo Dyskutant (8,300 p.)

Dla potomnych: dyrektywy Global używa się dopiero wtedy, gdy chcemy użyć zmiennej z poza obszaru danej metody/funkcji. Interpreter wie wtedy, że gdy odwołamy się do wspomnianej zmiennej, nie będzie to zmienna lokalna.

komentarz 4 kwietnia 2015 przez shadax Obywatel (1,850 p.)

Wielkie dzięki! laugh

 

Tylko dalej nie rozumiem, czemu wszystko działało, dopóki nie wrzuciłem tego, do tej funkcji :p

komentarz 4 kwietnia 2015 przez toaspzoo Dyskutant (8,300 p.)

Ponieważ odwoływałeś się do zmiennej $mysqli obrębie funkcji display.

Bardzo kolokwialnie mówiąc, dyrektywa Global każe funkcji szukać zmiennej głębiej niż tylko w swoim obrębie.

0 głosów
odpowiedź 4 kwietnia 2015 przez darekj19 Użytkownik (910 p.)
Odinstaluj  program i zainstaluj i  napisz od nowa .
komentarz 4 kwietnia 2015 przez shadax Obywatel (1,850 p.)
Jaki program? Xamppa?

 

Ten kod, który wklejam do funkcji, działa bez zarzutu osobno, więc to raczej nie jest wina programu

 

Przesłałem sobie teraz kod na witrynę i strona nie wyświetla błędu, ale w tym samym miejscu w kodzie nastepuje zatrzymanie kodu, tak jakby die();

Podobne pytania

+1 głos
1 odpowiedź 410 wizyt
pytanie zadane 24 lutego 2022 w SQL, bazy danych przez Piotrek2713 Mądrala (5,520 p.)
0 głosów
2 odpowiedzi 412 wizyt
pytanie zadane 23 lipca 2016 w PHP przez MaciekM Użytkownik (990 p.)
0 głosów
1 odpowiedź 1,049 wizyt
pytanie zadane 24 maja 2023 w PHP przez szoopa Nowicjusz (190 p.)

93,439 zapytań

142,431 odpowiedzi

322,674 komentarzy

62,802 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...