2017-02-09 7 views
1

Ich habe ein Problem beim Aktualisieren des Werts, wenn ich eine Zeichenfolge in die Eingabe einfüge. Meine Spalte "Location", die ich aktualisieren möchte, ist ein Datentyp: varchar() In meiner Datenbank. Ich kann eine Zahl wie "3" einfügen und es wird in der Datenbank aktualisiert. Aber wenn ich eine Zeichenfolge wie "SS14" einfüge, wird es nicht in der Datenbank aktualisiert und ich bekomme einen Fehler. Was mache ich falsch?Kann den Wert als Zeichenfolge nicht aktualisieren

<?php 
try { 
    // verify request 
    if($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') throw new Exception ('No Xrequest'); 


     require_once('db.php'); 

     $q= 'UPDATE prestashop.ps_product SET location = %s WHERE id_product = %d'; 

     $sql = sprintf($q, $_REQUEST['value'], $_REQUEST['id']); 

     $rs=$ib->exec($sql); 
     if (PEAR::isError($rs)) throw new Exception ("DB Request: ". $rs->getMessage()); 

     die("1"); // exit and return 1 on success 
    } catch (Exception $e) { 
     print $e->getMessage(); 
    } ' 


<td class="test" id="'.$r["product_id"].'"><font size=+2> 

<b>'.$r["product_s_desc"].'</b></font></td> 

     <script> 
    var x; 
    var h = 0; // blur fires multiple times, use h to count and fire once 
    var url = 'up.php'; 

    $(".test").on('click', function(d) { 
     d.stopPropagation(); 
     var x = $(d.target); 
     x.html('<input id="edit" style="width: 40px;" value="'+x.text()+'">'); 
     var this_id = x.context.id; 

     $("#edit").on('blur', function(d) { 
      if (h < 1) { 
       h = h+1; 
       d.stopPropagation(); 

       $(d.target.parentElement).text(d.target.value); 

       $.get(url, {id: this_id, value: d.target.value}) 
        .done(function(d){ if(d == undefined || d != 1) { alert('Something went wrong, check your data and results. '+d);}}) 
        .fail(function(d){ alert('error');}); 
       $(".edit").off('blur'); 
      } 

      return false; 
     }); 
     h = 0; 
    }); 
    </script> 
+0

Der Code ist nicht in der richtigen Reihenfolge in der "Code-Block", aber ich zeige nur den Code, den ich verwende – Somepub

Antwort

1

In einem String-Werte SQL-Anweisung muss wie diese

$q= "UPDATE prestashop.ps_product SET location = '%s' WHERE id_product = %d"; 

HINWEIS die einfachen Anführungszeichen um den %s

Sie Zitate in Anführungszeichen werden um alle Datenwerte setzen können, aber sie sind Manditory um Text Datentypen.

+0

Ich tat es! Aber es wird immer noch nicht in der Datenbank aktualisiert und zeigt einen Fehler – Somepub

+0

Oh, ich fand das Problem, ich verwendete einzelne Qoutes statt Doppel! Vielen Dank – Somepub

Verwandte Themen