PHP/SQL løsning hvor sql query fejler
Jeg har kastet mig over sql server/php og det kan godt være op ad bakke til tider. Så beklager hvis jeg er ret nybegynder.I nedenstående kode fungerer 1. query som den skal - det er nr. 2 der fejler. (Jeg tænkte det ville give mest overblik hvis jeg postede hele koden). Er der nogen der kan gennemskue hvorfor det fejler?
Koden er taget fra insert_data.php. Originalfilen hedder index.php som henviser til denne side når der trykkes på formularknap.
<?php
if (isset($_POST['Nyttrin']) && isset($_POST['ID'])) {
// Replace 'your_server_name', 'your_database_name', 'your_username', and 'your_password' with your actual database credentials
$serverName = 'sql2012r2srv1';
$connectionOptions = array(
"Database" => 'Afstemningsdata',
"UID" => '',
"PWD" => ''
);
$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn === false) {
die(print_r(sqlsrv_errors(), true));
}
//$Nyttrin = $_POST['Nyttrin'];
$Nyttrin = isset($_POST['Nyttrin']) && $_POST['Nyttrin'] !== '' ? $_POST['Nyttrin'] : null;
$ID = $_POST['ID'];
$currentUsername= shell_exec("echo %username%");
$date = date('d-m-Y H:i:s');
$status = 'Afventer TR';
// SQL query to update the 'Nyttrin' value based on the 'ID' key
$sql1 = "UPDATE Medarbejdere SET Nyttrin = ?, Status = '$status', Ledergodkendtaf = '$currentUsername', Ledergodkendttid = ('$date') WHERE ID = ?";
// Prepare the SQL query
$params1 = array($Nyttrin, $ID);
$stmt1 = sqlsrv_prepare($conn, $sql1, $params1);
// Check if the query was prepared successfully
if ($stmt1 === false) {
die(print_r(sqlsrv_errors(), true));
}
// Execute the prepared statement
if (sqlsrv_execute($stmt1) === false) {
die(print_r(sqlsrv_errors(), true));
} else {
echo "Lønoplysninger blev opdateret korrekt<p>";
echo "<form action='index.php' method='post'><input type='submit' value='Retur'></form>";
}
sqlsrv_free_stmt($stmt1);
// The SQL query (modified to use a subquery for the JOIN)
$sql2 = "UPDATE m
SET m.oprTrinbeløb = lt.beløb
FROM Medarbejdere m
INNER JOIN Løntabel lt ON lt.Trin = m.trin AND lt.løntabel = m.løntabel
WHERE m.ID = ?";
// Prepare the SQL query
$params2 = array($ID);
$stmt2 = sqlsrv_prepare($conn, $sql2, $params2);
// Check if the query was prepared successfully
if ($stmt2 === false) {
die(print_r(sqlsrv_errors(), true));
}
// Execute the prepared statement
if (sqlsrv_execute($stmt2) === false) {
die(print_r(sqlsrv_errors(), true));
}
sqlsrv_free_stmt($stmt2);
sqlsrv_close($conn);
}
?>