Problem z zapytaniem UPDATE w sqlite i php

Odpowiedz Nowy wątek
2018-08-03 19:30
0

Problem z zapytaniem UPDATE w sqlite i php. Po naciśnięciu przycisku p0 wywołuję się poniższy skrypt i wyświetla

"Fatal error: Uncaught Error: Call to undefined function sqlite_exec() in C:\xampp\htdocs\sql.php:57 Stack trace: #0 {main} thrown in C:\xampp\htdocs\sql.php on line 57"

if(isset($_POST['p0']))
{

    $query = sqlite_exec($db, "UPDATE TestowySerial SET nazwa='POZMIENIAŁO SIĘ!!' WHERE ID=1", $error);
if (!$query) {
    exit("Error in query: '$error'");
} else {
    echo 'Number of rows modified: ', sqlite_changes($db);
}

linia 57 z erroru to "$query = sqlite_exec($db, "UPDATE TestowySerial SET nazwa='POZMIENIAŁO SIĘ!!' WHERE ID=1", $error);"

edytowany 1x, ostatnio: CodeRZ, 2018-08-03 19:31

Pozostało 580 znaków

2018-08-03 19:41
0

Wystarczy wpisać frazę Call to undefined function sqlite_exec() w Google i masz dziesiątki wyników.

Tak BTW - funkcja sqlite_exec (http://php.net/manual/pl/function.sqlite-exec.php) była dostępna w wersji PHP < 5.4.0.
Zakładam, że masz nowszą wersję (przynajmniej powinieneś) i w takim wypadku należy korzystać z: http://php.net/manual/en/book.sqlite3.php

Tak mam php 7 dzięki, właśnie nie wiedziałem wcześniej czym się te exec różnią. Zmianiłem na - CodeRZ 2018-08-03 20:30

Pozostało 580 znaków

2018-08-03 20:30
0
if(isset($_POST['p0']))
{

    $db-> exec("UPDATE TestowySerial SET nazwa='POZMIENIAŁO SIĘ!!' WHERE ID=1");
//if (!$query) {
 //   exit("Error in query: 'error'");
//} else {
 //   echo 'Number of rows modified: ', sqlite_changes($db);

    /*$sql =<<<EOF
      UPDATE TestowySerial SET stan = '1';
EOF;
   $ret = $db->exec($sql);
   if(!$ret) {
    //  echo $db->lastErrorMsg();
      echo "BUUUU! Nie działa! :(";
   } else {
      echo $db->changes(), " Record updated successfully\n";
   }*/
}

w komentarzu jest też podobna funkcja ale również nie działa.

Pozostało 580 znaków

2018-08-03 20:40
0
$db-> exec("UPDATE TestowySerial SET nazwa='POZMIENIAŁO SIĘ!!' WHERE ID=1");
  1. Czemu między -> a exec jest spacja? To jest błąd składni PHP.
  2. Co jest w zmiennej $db?
edytowany 1x, ostatnio: sintloer, 2018-08-03 20:40

Pozostało 580 znaków

2018-08-03 20:53
0
sintloer napisał(a):
$db-> exec("UPDATE TestowySerial SET nazwa='POZMIENIAŁO SIĘ!!' WHERE ID=1");
  1. Czemu między -> a exec jest spacja? To jest błąd składni PHP.
  2. Co jest w zmiennej $db?
  1. Nie wiedziałem, poprawnione, ale dalej nie działa.
  2. Na początku mam "$db = new PDO('sqlite:lista.db');", zapytania select działają.
edytowany 1x, ostatnio: CodeRZ, 2018-08-03 20:54

Pozostało 580 znaków

2018-08-03 21:53
0

Na pewno w Twojej tabeli istnieje pole nazwa i ID? I czy na pewno istnieje tabela TestowySerial?

edytowany 1x, ostatnio: sintloer, 2018-08-03 21:54

Pozostało 580 znaków

2018-08-03 21:55
0
sintloer napisał(a):

Na pewno w Twojej tabeli istnieje pole nazwa i ID? I czy na pewno istnieje tabela TestowySerial?

Pozostało 580 znaków

2018-08-03 21:58
0

Nom, wyglada ok. A jak weźmiesz to całe zapytanie w var_dump() to co dostajesz?

Pozostało 580 znaków

2018-08-03 22:00
0

Tak?

var_dump($db->exec("UPDATE TestowySerial SET nazwa='POZMIENIAŁO SIĘ!!' WHERE ID=1"));

Efekt: "bool(false)"

Pozostało 580 znaków

2018-08-03 22:01
0

Ok - czyli na pewno jest tu błąd.
W strukturze tabeli pole nazwa jaki ma typ i długość?

edytowany 2x, ostatnio: sintloer, 2018-08-03 22:03

Pozostało 580 znaków

2018-08-03 22:10
0
sintloer napisał(a):

Ok - czyli na pewno jest tu błąd.
W strukturze tabeli pole nazwa jaki ma typ i długość?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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