2017-02-09 6 views
1

У меня проблема с обновлением, когда я вставляю строку во вход. Моя колонка «Местоположение», которую я хочу обновить, это тип данных: varchar() В моей базе данных. Я могу вставить число, подобное «3», и оно будет обновляться в базе данных. Но когда я вставляю строку типа «SS14», она не обновляется в базе данных, и я получаю сообщение об ошибке. Что я делаю неправильно?Cant Update Value As String

<?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

Код не в правильном порядке в «блоке кода», но я просто показываю код, который я использую – Somepub

ответ

1

В одном из значений строки SQL заявление должно быть завернуты в кавычки, как этот

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

Примечание одиночные кавычки %s

Вы можете поместить в кавычки всех значений данных, но они мандалирование вокруг текстовых типов данных.

+0

Я сделал это! Но он по-прежнему не обновляется в базе данных и показывает ошибку – Somepub

+0

Ой я нашел проблему, я использовал одиночные qoutes вместо double! спасибо – Somepub