PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Mysql Problem (http://www.selfphp.de/forum/showthread.php?t=25344)

stifticus 31.07.2014 23:12:52

Mysql Problem
 
Hallo,

ich bekomme bei meinem Script folgende Fehlerausgabe:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':32:"Address":8:{s:6:"street";s:11:"Musterstr";s:12:"streetNumber";s: 3:"123";s:4' at line 1

PHP-Code:

<?php
 
  
  $con 
mysqli_connect("xxxxxxx");

  
// Check connection
  
if (mysqli_connect_errno())
    die(
"Failed to connect to MySQL: " mysqli_connect_error());
 echo 
error_reporting (E_ALL);
  
$data "O:32:\"Address\":8:{s:6:\"street\";s:11:\"Musterstr\";s:12:\"streetNumber\";s:3:\"123\";s:4:\"city\";s:10:\"Muste    rstadt\";s:3:\"zip\";s:5:\"11111\";s:9:\"firstName\";s:4:\"Test\";s:8:\"lastName\";s:5:\"Kunde\";s:10:\"postNumber   \";i:12344;s:7:\"country\";s:11:\"Deutschland\";}";
  



  
$query "UPDATE order_attributes SET order_info = $data  WHERE order_info IS NULL";


mysqli_query($con$query);
echo 
mysqli_error($con);
echo 
$query;


   
mysqli_close($con);
?>


Kann mir evtl. jemand helfen? Vielen Dank

vt1816 01.08.2014 08:53:15

AW: Mysql Problem
 
Hallo und willkommen hier im Forum.

Lass Dir Deinen String $query mal vor der Verarbeitung anzeigen.
Wie ist die Struktur der Datenbanktabelle order_attributes?

stifticus 01.08.2014 09:23:09

AW: Mysql Problem
 
Guten Morgen,
vielen Dank für Deine Antwort.

Ich habe den Code noch etwas geändert:

PHP-Code:

 <?php
 
  
  $con 
mysqli_connect("xxxxxxx");

  
// Check connection
  
if (mysqli_connect_errno())
    die(
"Failed to connect to MySQL: " mysqli_connect_error());
 echo 
error_reporting (E_ALL);
  
$data O:32:"Address":8:{s:6:"street";s:11:"Musterstr";s:12:"streetNumber";s:3:"123";s:4:"city";s:10:"Musterstadt";s:3:"zip";s:5:"11111";s:9:"firstName";s:4:"Test";s:8:"lastName";s:5:"Kunde";s:10:"postNumber";i:12344;s:7:"country";s:11:"Deutschland";}";
  

$sdata =  mysqli_real_escape_string($con, $data);

  
$query = "
UPDATE order_attributes SET order_info $sdata  WHERE order_info IS NULL";

echo $query;
mysqli_query($con, $query);
echo mysqli_error($con);



   mysqli_close($con);
?>

Die Daten werden escaped angezeit. Es kommt aber immer der Fehler:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':32:\"Address\":8:{s:6:\"street\";s:11:\"Musterstr\";s:12:\"streetNum ber\";s: 3:\"123\";s:4' at line 1

Die Tabelle hat eine normale Struktur.

stifticus 01.08.2014 11:07:44

AW: Mysql Problem
 
Hallo,

ich habe es jetzt so gelöst. Es funktioniert nun. Leider aber nicht im String.

PHP-Code:

 <?php
 
  
  $con 
mysqli_connect("xxxxxxx");

  
// Check connection
  
if (mysqli_connect_errno())
    die(
"Failed to connect to MySQL: " mysqli_connect_error());
 echo 
error_reporting (E_ALL);
  
  
$query "UPDATE order_attributes SET order_info = "O:32:"Address\":8:{s:6:\"street\";s:11:\"Musterstr\";s:12:\"streetNumber\";s:3:\"123\";s:4:\"city\";s:10:\"Muste    rstadt\";s:3:\"zip\";s:5:\"11111\";s:9:\"firstName\";s:4:\"Test\";s:8:\"lastName\";s:5:\"Kunde\";s:10:\"postNumber   \";i:12344;s:7:\"country\";s:11:\"Deutschland\";}"  WHERE order_info IS NULL";


mysqli_query($con, $query);
echo mysqli_error($con);
echo $query;


   mysqli_close($con);
?>


Ich habe aber dennoch eine Frage. Wie könnte ich einzelne Felder innerhalb der Textes: "O:32:\"Address\":8:{s:6:\"street\";s:11:\"Musterstr\";s:12:\"streetNu mber\";s:3:\"123\";s:4:\"city\";s:10:\"Muste rstadt\";s:3:\"zip\";s:5:\"11111\";s:9:\"firstName\";s:4:\"Test\";s:8: \"lastName\";s:5:\"Kunde\";s:10:\"postNumber \";i:12344;s:7:\"country\";s:11:\"Deutschland\";}" ändern?

stifticus 01.08.2014 13:02:23

AW: Mysql Problem
 
Zitat:

Zitat von stifticus (Beitrag 146787)

Ich habe aber dennoch eine Frage. Wie könnte ich einzelne Felder innerhalb der Textes: "O:32:\"Address\":8:{s:6:\"street\";s:11:\"Musterstr\";s:12:\"streetNu mber\";s:3:\"123\";s:4:\"city\";s:10:\"Muste rstadt\";s:3:\"zip\";s:5:\"11111\";s:9:\"firstName\";s:4:\"Test\";s:8: \"lastName\";s:5:\"Kunde\";s:10:\"postNumber \";i:12344;s:7:\"country\";s:11:\"Deutschland\";}" ändern?


Anders formuliert. Daten einfügen geht ja per string.
Ich muss etwas abgleichen. Und zwar:

Wenn in Tabelle Order_attributes adress= Is NULL dann nimm OrderID
gehe zu
Tabelle Order wo ID = orderID nimmm UserID
gehe zu
Tabelle User_Shipping_Adress wo UserID=UserID

Von dort sollen dann die Felder Firstname Lastname ,... jeweils als einzelner Sting genommen werden und per z.B. $firstname in die Query eingebaut werden.

stifticus 01.08.2014 20:05:43

AW: Mysql Problem
 
Würde das mit select from where funktionieren oder bräuchte ich dafür etwas anderes?
Vielen Dank schon mal für Tips.

meikel (†) 02.08.2014 07:35:23

AW: Mysql Problem
 
Mach doch mal die Augen auf. Du siehst doch schon an der Quelltextanzeige hier im Forum, wo es klemmt.

Durchlesen:
http://de2.php.net/manual/de/language.types.string.php
So oft, bis Du es kapiert hast.

Und dann gehts da weiter:
http://de2.php.net/manual/de/mysqli.query.php

stifticus 02.08.2014 08:36:20

AW: Mysql Problem
 
Zitat:

Zitat von meikel (Beitrag 146793)
Mach doch mal die Augen auf. Du siehst doch schon an der Quelltextanzeige hier im Forum, wo es klemmt.

Durchlesen:
http://de2.php.net/manual/de/language.types.string.php
So oft, bis Du es kapiert hast.

Und dann gehts da weiter:
http://de2.php.net/manual/de/mysqli.query.php


Ja, oben habe ich vergessen einen Single quot einzusetzen. Dennoch geht es mit der obigen Fehlermeldung weiter.
Von daher habe ich den Text direkt escaped in das query geschrieben, wo es einwandfrei funktioniert.

Grüsse

meikel (†) 02.08.2014 13:38:43

AW: Mysql Problem
 
Zitat:

Zitat von stifticus (Beitrag 146794)
Ja, oben habe ich vergessen einen Single quot einzusetzen. Dennoch geht es mit der obigen Fehlermeldung weiter.

Sakra. Lies endlich mal das Handbuch! Oder kauf Dir ne Tastatur, die elektrische Schläge verteilt, wenn Du solchen Blödsinn zusammentippst.
Gibt Dir das nicht zu denken, daß sich an Deinen Strings sowohl PHP als auch MySQL die Zähne aubeißen?
Zitat:

Von daher habe ich den Text direkt escaped in das query geschrieben, wo es einwandfrei funktioniert.
1. in Deinem Handbuch fehlt also die Funktion/Methode mysqli::real_escape_string?
http://de1.php.net/mysqli
http://de1.php.net/manual/de/mysqli....ape-string.php
2. mit der PDO Extension ginge es auch, aber die scheint es in Deinem Handbuch wohl auch nicht zu geben.
http://de1.php.net/pdo
3. Dein String sieht aus wie ein serialisiertes Array. Woher stammt der Kram?

stifticus 02.08.2014 14:07:02

AW: Mysql Problem
 
THema kann geschlossen werden.

Ich dachte das ist ein Forum um Hilfe zu bekommen, wenn man Probleme hat. Aber scheinbar ist das bei manchen Usern nicht so.
Lieber auf den Leuten rumhacken, das geht immer.
Als Anfänger in Sachen PHP / MYSQL weiß man halt vieles nicht und macht Fehler. So fängt ja wohl jeder mal an.
Und dafür fragt man ja nach um aus den Fehlern zu lernen, welche man gemacht hat.


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:58:11 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.