uppdatera rad i databas (Microsoft SQL server) med php

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

uppdatera rad i databas (Microsoft SQL server) med php

försöker uppdatera en rad med hjälp av följande kod:

<?php error_reporting(E_ALL); ini_set('display_errors', 1); $head = $_POST['title']; $short = $_POST['short']; $bread = $_POST['edit']; $author = $_POST['author']; $cat = $_POST['cat']; $id = $_POST['id']; $db = new PDO('sqlsrv:server=localhost;Database=blog', '******', '*****'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); try{ $sql = 'UPDATE dbo.blog_posts SET blog_title= :head, blog_short= :short, blog_post= :bread, blog_author= :author, blog_category= :cat WHERE blogID= :id'; $query = $db->prepare( $sql ); $query->execute( array(':head'=>$head, ':short'=>$short, ':bread'=>$bread, ':author'=>$author, ':cat'=>$cat ) ); }catch(PDOExepction $e){ echo $e->getMessage(); } ?>

men får error:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[07002]: [Microsoft][SQL Server Native Client 11.0]COUNT field incorrect or syntax error' in C:\inetpub\wwwroot\dev\ny\post_edit.php:17 Stack trace: #0 C:\inetpub\wwwroot\dev\ny\post_edit.php(17): PDOStatement->execute(Array) #1 {main} thrown in C:\inetpub\wwwroot\dev\ny\post_edit.php on line 17

Men alla exempel jag hittar på google fungerar på samma sätt typ... hur bör jag ändra för att få igång detta?

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
Stockholm
Registrerad
Aug 2009
Skrivet av pellski87:

WHERE blogID= :id

Du har inte bindat :id till något i din array du skickar med när du faktiskt exekverar frågan.

7900x @ 4,7ghz - 1080ti @ 2100

Trädvy Permalänk
Medlem
Plats
Piteå
Registrerad
Okt 2004
Skrivet av celoz:

Du har inte bindat :id till något i din array du skickar med när du faktiskt exekverar frågan.

aaa såhär då?

<?php error_reporting(E_ALL); ini_set('display_errors', 1); $head = $_POST['title']; $short = $_POST['short']; $bread = $_POST['edit']; $author = $_POST['author']; $cat = $_POST['cat']; $id = $_POST['id']; $postdate = date('Y-m-d H:i:s'); $db = new PDO('sqlsrv:server=localhost;Database=blog', '****', '*********'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "UPDATE `blog_posts` SET `blog_title` = :head, `blog_short` = :short, `blog_post` = :bread, `blog_author` = :author, `blog_category` = :cat, `blog_date` = :postdate WHERE `blogID` = :id"; $query = $db->prepare( $sql ); $query->execute( array(':id'=>$id, ':head'=>$head, ':short'=>$short, ':bread'=>$bread, ':author'=>$author, ':postdate'=>$postdate, ':cat'=>$cat ) ); header("Location: index.php"); ?>

fungerar dock inte heller..

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near '`'.' in C:\inetpub\wwwroot\dev\ny\post_edit.php:17 Stack trace: #0 C:\inetpub\wwwroot\dev\ny\post_edit.php(17): PDOStatement->execute(Array) #1 {main} thrown in C:\inetpub\wwwroot\dev\ny\post_edit.php on line 17

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
Piteå
Registrerad
Okt 2004

NVM löste de! tack!

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 :)