/
Kan je de code beperken tot relevante code van tot +/- 20 regels?
Ik hoop dat dit goed is:
Ik ben een cursus aan het volgen (geschreven voor php7 en lager).
Ik krijg een error wanneer ik dit in php8.0.6 server zet:
Fatal error: Uncaught TypeError: Cannot access offset of type string on string in C:\xampp\htdocs\2021\globe_bank\private\query_functions.php:472 Stack trace: #0 C:\xampp\htdocs\2021\globe_bank\public\staff\admins\delete.php(13): delete_admin('2') #1 {main} thrown in C:\xampp\htdocs\2021\globe_bank\private\query_functions.php on line 472

delete.php

<?php
if(is_post_request()) {
  $result = delete_admin($id);
  $_SESSION['message'] = 'Admin deleted.';
  redirect_to(url_for('/staff/admins/index.php'));
} else {
  $admin = find_admin_by_id($id);
}
?>

queryfunctions.php

<?php
  function delete_admin($admin) {
    global $db;

    $sql = "DELETE FROM gb_admins ";
    $sql .= "WHERE id='" . db_escape($db, $admin['id']) . "' ";
    $sql .= "LIMIT 1;";
    $result = mysqli_query($db, $sql);

    // For DELETE statements, $result is true/false
    if($result) {
      return true;
    } else {
      // DELETE failed
      echo mysqli_error($db);
      db_disconnect($db);
      exit;
    } 
  }
?>


line 472 => $sql .= "WHERE id='" . db_escape($db, $admin['id']) . "' ";

Kan iemand hiermee helpen wat juist de fout is (ben maar een beginner) en hoe ik dit probleem kan oplossen.

Met vriendelijke groeten
Johan

Je geeft blijkbaar in delete.php op lijn 3 (hier) een $id mee.
Maar uiteindelijk behandel je die in je functie op lijn 8 (hier) van queryfunctions.php als een array-key $admin['id'].

Met [php]var_dump[/php] kan je precies zien wat voor type wat iets is.
ok dank je voor het advies :)

Reageren