Błąd po przejściu na php7 - Call to a member function query() on null

Odpowiedz Nowy wątek
2017-03-28 19:39

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Hej na serwerze miałem zainstalowane php 5.6 postanowiłem wrzucić sobię php 7 i teraz gdy chcę coś dodać do bazy wyrzuca mi 500 i taki ładny error:

PHP message: PHP Fatal error: Uncaught Error: Call to a member function query() on null in /srv/sciezka_do_folderu/db_files/newDB.php:26

Gdy na innym serwerze jest zainstalowany php 5.6 to wszystko ciągle działa

Tak wygląda połączenie z bazą:

<?php
$connect = mysqli_connect("localhost", " ", " "," ");
?>

i plik newDB.php

<?php
session_start();
require_once 'connectDB.php';

$data = json_decode(file_get_contents("php://input"));

$username = mysqli_real_escape_string($connect, $data->username);
$task = mysqli_real_escape_string($connect, $data->task);
$dept = mysqli_real_escape_string($connect, $data->dept);
$state = mysqli_real_escape_string($connect, $data->state);
$task_start = mysqli_real_escape_string($connect, $data->task_start);
$task_end = mysqli_real_escape_string($connect, $data->task_end);
$login = mysqli_real_escape_string($connect, $data->login);
$deadline = mysqli_real_escape_string($connect, $data->deadline);
$priority = mysqli_real_escape_string($connect, $data->priority);

if($_SESSION['type']=='Admin') {
       $query = "INSERT into tasks_main (username,task,dept,status,task_start,task_end,deadline,task_time,priority) VALUES ('$login','$task','$dept','$state','$task_start','$task_end','$deadline','$task_time','$priority')";          
}else {
    $query = "INSERT into tasks_main (username,task,dept,status,task_start,task_end,deadline,task_time,priority) VALUES ('$username','$task','$dept','$state','$task_start','$task_end','$deadline','$task_time','$priority')";
}

mysqli_query($connect, $query);

echo true;
mysqli_close($connect);
?>

co ciekawe SELECT działa więc połączenie z bazą jest bo tabele są wypełnione. Ma ktoś może jakiś pomysł?

Pozostało 580 znaków

2017-03-28 20:23
Moderator

Rejestracja: 12 lat temu

Ostatnio: 1 godzina temu

Lokalizacja: Wrocław

2

Linijka 26 to u Ciebie mysqli_close($connect);, coś oszukujesz.
Btw, być może zmienna $connect nie jest przekazywana z jednego pliku do drugiego.


edytowany 2x, ostatnio: Patryk27, 2017-03-28 20:24

Pozostało 580 znaków

2017-03-28 20:35

Rejestracja: 5 lat temu

Ostatnio: 5 godzin temu

1

Może w tym php 7 nie masz wkompilowane obsługi funkcji mysql_query ?

Pozostało 580 znaków

2017-03-28 20:35

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Chciałbym mieć tyle czasu żeby mógł sobie oszukiwać na forum z nudów. Też się zastanawiam skąd on to bierze skoro nawet nigdzie nie mam funkcji query()

Wiesz co, dodałem też bezpośrednio połączenie w pliku newDB do bazy danych i to samo :o

Pozostało 580 znaków

2017-03-28 20:35
Moderator

Rejestracja: 12 lat temu

Ostatnio: 1 godzina temu

Lokalizacja: Wrocław

1

Przerzuć się zatem na PDO :P


Pozostało 580 znaków

2017-03-28 20:39

Rejestracja: 5 lat temu

Ostatnio: 5 dni temu

1

Najprawdopodobniej jak kolega wyżej rzecze. PHP 7 na mniej użytkownikom pozwala pod kątem składni, na niewiele mniej, ale zawsze, wiem że miałem problem podczas przejścia z php5.6 na php7.1, wtedy gdy zaczynałem plik od <? a nie <?php. Posprawdzaj Swoje pliki.
Ponadto warto pomyśleć nad PDO, gdyż to tylko kwestia czasu, jak mysqli podąży za mysql i przestanie być przez wyższe wersje php obsługiwane.

Pozostało 580 znaków

2017-03-28 20:44

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Dobra jutro przepiszę na PDO jak nie to wrócę :D

macie po łapce w górę tylko nie wydajcie wszystkie od razu

edytowany 1x, ostatnio: dextrose, 2017-03-28 20:44

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0