我正在尝试使用以下代码更新数据库中的数据:
<?php
error_reporting(E_ALL | E_STRICT | E_NOTICE);
ini_set('display_errors', 1);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
require("../db_connect.php");
if ($_GET['action'] == 'insert')
{
$query = "INSERT INTO tblfatture_2019 (id_booking, IdPaese, IdCodice, CodiceFiscale, Denominazione, Cognome, Nome, Indirizzo, NumeroCivico, CAP, Comune, Provincia, Nazione, payment_method, date_fattura, pre_paid, CodiceDestinatario, PECDestinatario) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$stmt = mysqli_prepare($con, $query);
$var1 = $_GET['id_booking'];
$var2 = $_GET['IdPaese'];
$var3 = $_GET['IdCodice'];
$var4 = $_GET['CodiceFiscale'];
$var5 = $_GET['Denominazione'];
$var6 = $_GET['Cognome'];
$var7 = $_GET['Nome'];
$var8 = $_GET['Indirizzo'];
$var9 = $_GET['NumeroCivico'];
$var10 = $_GET['CAP'];
$var11 = $_GET['Comune'];
$var12 = $_GET['Provincia'];
$var13 = $_GET['Nazione'];
$var14 = $_GET['payment_method'];
$var15 = $_GET['date_fattura'];
$var16 = $_GET['pre_paid'];
$var17 = $_GET['CodiceDestinatario'];
$var18 = $_GET['PECDestinatario'];
mysqli_stmt_bind_param($stmt,"issssssssssssssdss", $var1, $var2, $var3, $var4, $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $var14, $var15, $var16, $var17, $var18);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
}
else if ($_GET['action'] == 'delete')
{
$val1 = $_GET['id_fattura'];
$query = "DELETE FROM tblfatture_2019 WHERE id_fattura = ?";
$stmt = mysqli_prepare($con, $query);
mysqli_stmt_bind_param($stmt,"i", $val1);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
}
else
{
$query = "UPDATE tblfatture_2019 SET id_booking=?, IdPaese=?, IdCodice=?, CodiceFiscale=?, Denominazione=?, Cognome=?, Nome=?, Indirizzo=?, NumeroCivico=?, CAP=?, Comune=?, Provincia=?, Nazione=?, payment_method=?, date_fattura=?, pre_paid=?, CodiceDestinatario=?, PECDestinatario=? WHERE id_fattura=?";
$stmt = mysqli_prepare($con, $query);
$var1 = $_GET['id_booking'];
$var2 = $_GET['IdPaese'];
$var3 = $_GET['IdCodice'];
$var4 = $_GET['CodiceFiscale'];
$var5 = $_GET['Denominazione'];
$var6 = $_GET['Cognome'];
$var7 = $_GET['Nome'];
$var8 = $_GET['Indirizzo'];
$var9 = $_GET['NumeroCivico'];
$var10 = $_GET['CAP'];
$var11 = $_GET['Comune'];
$var12 = $_GET['Provincia'];
$var13 = $_GET['Nazione'];
$var14 = $_GET['payment_method'];
$var15 = $_GET['date_fattura'];
$var16 = $_GET['pre_paid'];
$var17 = $_GET['CodiceDestinatario'];
$var18 = $_GET['PECDestinatario'];
$val19 = $_GET['id_fattura'];
mysqli_stmt_bind_param($stmt,'issssssssssssssdssi', $var1, $var2, $var3, $var4, $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $var14, $var15, $var16, $var17, $var18, $var19);
mysqli_stmt_execute($stmt);
mysqli_stmt_affected_rows($stmt);
mysqli_stmt_close($stmt);
}
mysqli_close($con);
?>
但是我遇到了错误,最新的错误是:
我已经尝试调试了几个小时,无法理解为什么相关的insert
和'delete'语句像超级按钮以及其他几个{{1}一样工作时,更新查询不起作用}我正在使用的语句。
我一直试图将表名和列名放在'和'标记之间,但这无济于事。
预先感谢您的帮助。
答案 0 :(得分:0)
您已经使用以下未完成的查询调用数据库:
if (!$con->query($query)) {
echo "query failed: (" . $con->errno . ") " . $con->error;
}
尝试将其删除。 mysqli_stmt_execute($stmt);
已在稍后执行查询,因此甚至不需要这样做。
仔细阅读文档中给出的示例:http://php.net/manual/en/mysqli.prepare.php
答案 1 :(得分:0)
找到了!
拼写错误$ val19 = $ _GET ['id_fattura'];而不是$ var19 = $ _GET ['id_fattura'];这让我很忙,使我疯狂了近一个星期...