mysqli запрос на обновление необработанного исключения - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь обновить данные в БД, используя этот код:

<?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' работают как талисман, а также несколько других операторов update, которые я использую.

Я уже пытался заключить имена таблиц и столбцов между знаками `и ', но это не помогло.

Заранее спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Нашел!

Ошибка правописания $ val19 = $ _GET ['id_fattura'];вместо $ var19 = $ _GET ['id_fattura'];что занимало меня и сводило меня с ума почти неделю ...

0 голосов
/ 28 октября 2018

Вы уже вызываете базу данных с незаконченным запросом по адресу:

 if (!$con->query($query)) {
    echo "query failed: (" . $con->errno . ") " . $con->error;
 }

Попробуйте удалить это.mysqli_stmt_execute($stmt); уже выполняет запрос позже, поэтому в этом даже нет необходимости.

Внимательно посмотрите на примеры, приведенные в документации: http://php.net/manual/en/mysqli.prepare.php

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