错误更新记录:您的sql语法有错误,我如何解决它?

ugmeyewa  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(309)

我不熟悉php和mysql。
我尝试从html表单更新数据库中的记录。
我有一个搜索页面和一个编辑页面,在链接中有一个$\u get,其中是我必须在数据库中编辑的元素的id。
所有的工作表显示我的正确数据,我可以编辑他们的形式。但是当我点击编辑按钮时,我得到一个错误消息:

  1. Error updating record: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

编辑页面的php代码如下:

  1. <?php
  2. require('includes\dbconn.php');
  3. require('includes\dbfunction.php');
  4. session_start();
  5. if(isset($_SESSION["username"])){
  6. include('includes\theme\head.php');
  7. include('includes\theme\topbar.php');
  8. include('includes\theme\sidebar.php');
  9. ?>
  10. <!-- !PAGE CONTENT! -->
  11. <div class="w3-main" style="margin-left:300px;margin-top:43px;">
  12. <div class="w3-container">
  13. <div class="w3-row">
  14. <div class="w3-col s12 l3">
  15. <br>
  16. <?php
  17. //RICEVI DATI ARTICOLO DAL DATABASE
  18. if(isset($_GET['art_id'])){
  19. $sql = "SELECT * FROM articoli WHERE id =". $_GET['art_id'];
  20. $result = $conn->query($sql);
  21. $row = $result->fetch_assoc();
  22. }
  23. //AGGIORNA DATI ARTICOLO NEL DATABASE
  24. if(isset($_POST['btn-aggiorna'])){
  25. $codiceArt = $_POST['codicearticolo'];
  26. $descrizioneArt = $_POST['nomearticolo'];
  27. $barcodeArt = $_POST['barcode'];
  28. $prezzoAcquistoArt = $_POST['prezzoacquisto'];
  29. $prezzoVenditaArt = $_POST['prezzovendita'];
  30. $quantitaArt = $_POST['quantita'];
  31. $scontoArt = $_POST['sconto'];
  32. $update = "
  33. UPDATE articoli
  34. SET codiceArticolo='$codiceArt'
  35. , nomeArticolo='$descrizioneArt'
  36. , barcode='$barcodeArt'
  37. , prezzoAcquisto='$prezzoAcquistoArt'
  38. , prezzoVendita='$prezzoVenditaArt'
  39. , quantita='$quantitaArt'
  40. , scontoPercentuale='$scontoArt'
  41. WHERE id =". $_GET['art_id'];
  42. if ($conn->query($update) === TRUE) {
  43. ?>
  44. <script type="text/javascript">
  45. window.location.href = 'articolomodificato.php';
  46. </script>
  47. <?php
  48. } else {
  49. echo "Error updating record: " . $conn->error;
  50. }
  51. }
  52. ?>
  53. </div>
  54. <div class="w3-col s12 l5">
  55. <form class="w3-container" action="modificaarticolo.php" method="post">
  56. <label class="w3-text-blue"><b>Codice articolo:</b></label>
  57. <input class="w3-input w3-border" name="codicearticolo" type="text" value="<?php echo $row['codiceArticolo'];?>"><br>
  58. <label class="w3-text-blue"><b>Descrizione articolo:</b></label>
  59. <input class="w3-input w3-border" name="nomearticolo" type="text" value="<?php echo $row['nomeArticolo']; ?>"><br>
  60. <label class="w3-text-blue"><b>Barcode:</b></label>
  61. <input class="w3-input w3-border" name="barcode" type="text" value="<?php echo $row['barcode']; ?>"><br>
  62. <label class="w3-text-blue"><b>Prezzo Acquisto:</b></label>
  63. <input class="w3-input w3-border" name="prezzoacquisto" type="text" value="<?php echo $row['prezzoAcquisto']; ?>"><br>
  64. <label class="w3-text-blue"><b>Prezzo Vendita:</b></label>
  65. <input class="w3-input w3-border" name="prezzovendita" type="text" value="<?php echo $row['prezzoVendita']; ?>"><br>
  66. <label class="w3-text-blue"><b>Quantità:</b></label>
  67. <input class="w3-input w3-border" name="quantita" type="text" value="<?php echo $row['quantita']; ?>"><br>
  68. <label class="w3-text-blue"><b>Sconto %:</b></label>
  69. <input class="w3-input w3-border" name="sconto" type="text" value="<?php echo $row['scontoPercentuale']; ?>"><br>
  70. <button class="w3-btn w3-blue" name="btn-aggiorna" type="submit">Modifica</button>
  71. <a class="w3-btn w3-blue" href="/bk2/magazzino.php">Indietro<a>
  72. </form>
  73. </div>
  74. <div class="w3-col s12 l3">
  75. <br>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. <?php
  81. include('includes\theme\script.php');
  82. ?>
  83. </body>
  84. </html>
  85. <?php
  86. }
  87. else{
  88. header("location: accessonegato.php");
  89. }
  90. ?>

我从错误消息中知道错误在我的查询代码中,但我不知道在哪里。我曾多次尝试在查询的双引号中更改&\u get['art\u id']位置,但都没有效果。

i5desfxk

i5desfxk1#

调用页面时需要将id添加到表单中,否则无法传入

  1. <form class="w3-container" action="modificaarticolo.php?art_id=<?php echo $row['id'];?>" method="post">

你可能需要改变 $row['id'] 以获得正确的列名。
尽管这会导致一个小问题,因为数据是被提取进来的

  1. //RICEVI DATI ARTICOLO DAL DATABASE
  2. if(isset($_GET['art_id'])){

它在更新之前,因此您可能需要将此代码移到更新的下面,以确保它检索到最新的数据。

相关问题