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

Zapytanie INSERT

42 Warsaw Coding Academy
0 głosów
555 wizyt
pytanie zadane 25 czerwca 2018 w PHP przez toffik93 Bywalec (2,820 p.)

Kod błędu: Warning: mysqli_query(): Empty query in C:\xampp\htdocs\portal\DodajRekord.php on line 8
Błąd: Column 'uzytkownik_id' cannot be null

$kategoria=$_POST['kategoria'];
$podkategoria=$_POST['podkategoria'];
$tytul=$_POST['tytul'];
$tresc=$_POST['tresc'];
$q=mysqli_connect("localhost","root","","ogloszenia") or die("Padl serwer");
$sql=mysqli_query($q, "INSERT INTO `ogloszenie` (`uzytkownik_id`, `kategoria`, `podkategoria`, `tytul`, `tresc` ) VALUES (null,'$kategoria','$podkategoria','$tytul','$tresc')");
if(mysqli_query($q,$sql)){
echo "Ogłoszenie zostało dodane";
}else{
echo "Błąd: " . $sql . "
" . mysqli_error ($q);
}
mysqli_close($q);
?>

Trzy pytania: 

1. O co chodzi z empty_query?

2. Co mam wpisac w miejscu uzytkownik_id, skoro null nie dziala?

3. jak naprawic te bledy?

2 odpowiedzi

+2 głosów
odpowiedź 25 czerwca 2018 przez Chess Szeryf (76,730 p.)
wybrane 25 czerwca 2018 przez toffik93
 
Najlepsza

1. Zamień to:

if(mysqli_query($q,$sql)){ // ... 

, na to:

if($sql){ // ...

2. Spróbuj w ogóle niczego tam nie wpisywać z obydwu stron, czyli:

$sql=mysqli_query($q, "INSERT INTO `ogloszenie` (`kategoria`, `podkategoria`, `tytul`, `tresc` ) VALUES ('$kategoria','$podkategoria','$tytul','$tresc')");

lub napisz tak:

$sql=mysqli_query($q, "INSERT INTO `ogloszenie` VALUES (null,'$kategoria','$podkategoria','$tytul','$tresc')");

Wpisz np. w konsolę polecenie: describe tbl_name; i sprawdź typy pól. Nie możesz dawać apostrofów dla int'ów i nie stosować apostrofów dla string'ów. Zobacz też, czy nie wpisałeś przypadkiem not null przy kolumnie, to może być przyczyną tych błędów.

https://4programmers.net/Forum/PHP/309007-php_i_mysql?p=1478764#id1478764

0 głosów
odpowiedź 25 czerwca 2018 przez toffik93 Bywalec (2,820 p.)

W tym momencie mam taki kod: 

<?php
$kategoria=$_POST['kategoria'];
$podkategoria=$_POST['podkategoria'];
$tytul=$_POST['tytul'];
$tresc=$_POST['tresc'];
$q=mysqli_connect("localhost","root","","ogloszenia") or die("Padl serwer");
$sql=mysqli_query($q, "INSERT INTO `ogloszenie` (`uzytkownik_id`, `kategoria`, `podkategoria`, `tytul`, `tresc` ) VALUES ('$kategoria','$podkategoria','$tytul','$tresc')");
if($sql){
echo "Ogłoszenie zostało dodane";
}else{
echo "Błąd: " . $sql . "
" . mysqli_error ($q);
}
mysqli_close($q);
?>

otrzymuję błąd:

Błąd: Column count doesn't match value count at row 1

komentarz 25 czerwca 2018 przez Chess Szeryf (76,730 p.)

Wyrzuć ze zmiennej $sql, to: `uzytkownik_id`, ponieważ liczba kolumn się nie zgadza, sam błąd przecież o tym mówi. Napisałem Ci przykłady, a Ty napisałeś własny nieprawidłowy przykład.

komentarz 25 czerwca 2018 przez toffik93 Bywalec (2,820 p.)
Zaspany jestem, więc wybacz błędy. :Teraz działa, więc dzięki za pomoc. :)

Podobne pytania

0 głosów
2 odpowiedzi 198 wizyt
pytanie zadane 9 czerwca 2018 w PHP przez Q7V Gaduła (4,250 p.)
0 głosów
3 odpowiedzi 424 wizyt
pytanie zadane 25 października 2017 w PHP przez Serfin Nowicjusz (160 p.)
–1 głos
1 odpowiedź 353 wizyt
pytanie zadane 29 lipca 2017 w PHP przez UltraSF Stary wyjadacz (11,740 p.)

93,377 zapytań

142,380 odpowiedzi

322,529 komentarzy

62,727 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...