2016-08-06 1 views
-2

я столкнулся эта ошибка в моем коде у меня есть мой PHP-код, как ..Ошибка MySQL: у вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MariaDB для корректного синтаксиса использовать вблизи

<?php 
    $num = $_POST['h']; 

    if(isset($_POST['submit'])) { 
     for($i=0;$i<=$num;$i++) { 
      if(isset($_REQUEST["quantity$i"])){ 
       $quantity = $_REQUEST["quantity$i"]; 
      } 

      if(isset($_REQUEST["purchase$i"])){ //for error controling 
       $purchase = $_REQUEST["purchase$i"];}else{$purchase= 'purchase'; 
      } 

      if(isset($_REQUEST["sale$i"])) { //for error controling 
       $sale = $_REQUEST["sale$i"];}else{$sale = 00; 
      } 

      $sql="INSERT into myaccounts ('quantity','purchase','sale') values ('$quantity','$purchase','$sale')"; //for error controling    
      if(mysqli_query($dbh, $sql)) { 
       echo "Sucess"; 
      } else { 
       echo 'MySQL Error: ' . mysqli_error($dbh); 
      } 
     } 
    } 
?> 

Элемент h в html коде является

<table class="table table-bordered table-hover" id="tab_logic"> 
       <thead> 
        <tr > 
         <th class="text-center"> 
          # 
         </th> 
         <th class="text-center"> 
          Quantity 
         </th> 
         <th class="text-center"> 
          Purchase Price 
         </th> 
         <th class="text-center"> 
          Sale Price 
         </th> 
         <th class="text-center"> 
          Profit Or Loss 
         </th> 

        </tr> 
       </thead> 
       <tbody> 

        <tr id='addr0'></tr> 

<button type="submit" value="Register" name="submit" class="btn btn-default pull-">Submit</button> 
       </tbody> 

      </table> 
<input type="hidden" name="h" id="h" /> 
     </div> 

</form> 
</div> 
    <a id="add_row" class="btn btn-default pull-left">Add Row</a><a id='delete_row' class="pull-right btn btn-default">Delete Row</a> 


</div> 
<script> 
    $(document).ready(function(){ 
     var i=0; 
    $("#add_row").click(function(){ 
     $('#addr'+i).html("<td>"+ (i+1) +"</td><td><input name='quantity"+i+"' type='text' placeholder='Name' class='form-control input-md' /></td><td><input name='purchase"+i+"' type='text' placeholder='Purchase' class='form-control input-md'></td><td><input name='sale"+i+"' type='text' placeholder='Sale ' class='form-control input-md'></td>"); 

     $('#tab_logic').append('<tr id="addr'+(i+1)+'"></tr>'); 
     i++; 
    }); 
    $("#delete_row").click(function(){ 
     if(i>1){ 
     $("#addr"+(i-1)).html(''); 
     i--; 
     } 
    }); 

}); 
</script> 

у меня есть создать регистрации и входа в форму, используя тот же Insert запрос теперь я не смог добиться результата здесь.

ответ

0

Вы испытываете проблемы с синтаксисом пытаются использовать

$ SQL = "INSERT в myaccounts

(количество, покупка, продажа) значения ('$ количество', '$ покупка',» $ продажа ")";

Вместо

$ SQL = "INSERT в myaccounts

('количество', 'покупки', 'продажа') значения ('$ количество', '$ покупка', '$ продажа')";

потому что вы покупаете и продаете количество в качестве аргумента не как строку жесткого кода. надеюсь, что это поможет.

1

У вас есть синтаксические ошибки здесь

$sql="INSERT into myaccounts 

('quantity','purchase','sale') values ('$quantity','$purchase','$sale')"; 

не ставить имя_поль в одинарных кавычках (')

Replace запроса с этим:

$sql="INSERT into myaccounts 

(quantity,purchase,sale) values ('$quantity','$purchase','$sale')"; 
0

ты по смешивают html и php-код внутри цикла try th это один

<?php if(isset($_POST['submit'])) 
{ 

for($i=0;$i<=$num;$i++) 
{ 
if(isset($_REQUEST["quantity".$i])){$quantity = ["quantity".$i];} 
if(isset($_REQUEST["purchase".$i])){$purchase = $_REQUEST["purchase".$i];}else{$purchase= 'purchase';} //for error controling 
if(isset($_REQUEST["sale".$i])){$sale = $_REQUEST["sale".$i];}else{$sale = 00;} //for error controling 
$sql="INSERT into `myaccounts` (`quantity`,`purchase`,`sale`) values ('".$quantity."','".$purchase."','".$sale."')"; //for error controling 
if(mysqli_query($dbh, $sql)) 
{ 
    echo "Sucess"; 

} else { 
    echo 'MySQL Error: ' . mysqli_error($dbh); 
} 
}} 
?> 

или если вы получаете значения в массиве вы можете сделать это, как показано ниже

for($i=0;$i<=$num;$i++) 
{ 
if(isset($_REQUEST["quantity"][$i])){$quantity = ["quantity"][$i];} 
if(isset($_REQUEST["purchase"][$i])){$purchase = $_REQUEST["purchase"][$i];}else{$purchase= 'purchase';} //for error controling 
if(isset($_REQUEST["sale"][$i])){$sale = $_REQUEST["sale"][$i];}else{$sale = 00;} //for error controling 
$sql="INSERT into `myaccounts` ('quantity','purchase','sale') values ('".$quantity."','".$purchase."','".$sale."')"; //for error controling 
if(mysqli_query($dbh, $sql)) 
{ 
    echo "Sucess"; 

} else { 
    echo 'MySQL Error: ' . mysqli_error($dbh); 
} 
} 
0

Удалить одиночные кавычки из названий полей, как ниже:

$sql="INSERT INTO myaccounts (quantity,purchase,sale) values ('$quantity','$purchase','$sale')"; 
+0

Спасибо, всего лишь небольшая ошибка, но есть еще одна проблема, как вы можете видеть в моем «коде». Я добавляю строки с помощью java-скрипта, теперь только записи первой строки сохраняются в базе данных не из других строк , Можете ли вы мне помочь в этом? –

+0

У меня нет формы, связанной с несколькими строками. Также, каково значение h, вы ввели? – srmilon

+0

'Add Row' фактически выполняет код скрипта java для добавления строк. Теперь я обновил свой код, который вы можете проверить. –

1

одиночные кавычки обозначают строковые литералы, а не имена объектов (например, столбцы), как это должно быть в разделе столбцов вставок:

$sql = "INSERT into myaccounts (quantity, purchase, sale) values ('$quantity','$purchase','$sale')"; 

Обязательный комментарий:
Использование замены строки в коде SQL является опасной практикой, которая оставит ваш код уязвимым для SQL-инъекций. Вместо этого используйте вместо этого prepared statements.

 Смежные вопросы

  • Нет связанных вопросов^_^