Avatar billede puren Ekspert
11. juli 2021 - 13:01 Der er 4 kommentarer

variable into DB

hey

fandt noget kode på nettet og det virker men skal lige have det moddet lidt

---------DB1.php start-------
<?php
$servername = XXXXXXXXXX;
$username = XXXXXXXXXX;
$password = "XXXXXXXXXX;
$dbname = XXXXXXXXXX;
$mysqli = mysqli_connect($servername, $username, $password, $dbname);

    if (mysqli_connect_errno())
        echo "Failed to connect: " . mysqli_connect_errno();
    else
        echo "connection ready";
 
   
    function performQuery($sql) {
      global $mysqli;
      $result = mysqli_query($mysqli, $sql);

      if ( $result ) {
          return $result;
      } else {
          echo "Noget gik galt!";
          return null;
      }
  }
?>
---------DB1.php stut-------
---------updater.php start-------
<?php
require_once 'db1.php';
performQuery("INSERT INTO brom(ip, dato, tid) VALUES ('8.8.8.9', 123456, 43)");
  ?>
---------DB1.php stut-------
koden som den er virker men kan ikke finde ud at lave det om til variabler så tabel, ip, dato og tid er variabler
Avatar billede tvilling53 Seniormester
11. juli 2021 - 14:12 #1
Hej, jeg bruger dette , men der er måske andre og bedre måder at gøre det på.

$individuel=hent_indivi($mysqli,$indivi,$aar,0,$data1,$ident);

Function hent_indivi($mysqli,$tabel_navn,$aar,$tabel,$ident)
    {$data=[];
      if(!($stmt=$mysqli->prepare('SELECT * FROM `'.$tabel_navn.'` WHERE aar =? && tabel=? && ident = ?')))
        {    echo "<br>Prepare failed i HENT_INDIVI START_SQL<br>:(".$mysqli->errno.")" .$mysqli->error;}
        $stmt->bind_param('iis',$aar,$tabel,$ident);
      if(!$stmt->execute())
        {  echo "<br>execute failed i HENT_INDIVI START_SQL:(".$mysqli->errno.")" .$mysqli->error;}
      if(!($res = $stmt->get_result()))
        {  echo "<br>Getting result set failed i HENT_INDIVI START_SQL:(".$mysqli->errno.")" .$mysqli->error;}
      while ($row = mysqli_fetch_array($res))
        { $data['aar']=$row['aar'];
          $data['bruger']=$row['bruger'];
          $data['gruppe']=$row['gruppe'];
          $data['tabel']=$row['tabel'];
          $data['5']=$row['col1'];
          $data['gift']=$row['col2'];         
          $data['kirke1']=$row['col3'];
          $data['over1']=$row['col4'];
          $data['9']=$row['col5'];
          $data['kirke2']=$row['col6'];
          $data['over2']=$row['col7'];
          $data['kommune']=$row['col8'];
          $data['kirke']=$row['col9'];
          $data['tom']=$row['tom'];
          $data['ident']=$row['ident'];
      }
      return $data;//$stmt->close();
    }//funktion slut

Thomas V
Avatar billede tvilling53 Seniormester
11. juli 2021 - 14:14 #2
Dette var SELECT ,INSERT kommer om lidt
Avatar billede tvilling53 Seniormester
11. juli 2021 - 14:31 #3
Hej, her er så kald af function med variabler:

$mysqli = mysqli_connect($server, $brugernavn, $kode, $db);
// Tjek, om der opstod en fejl
if (!$mysqli)
{  echo"<br> connektion failed";
}

indsaet_data( $mysqli,$budget,$ind_dato, $tekst, $indtaegt, $udgift,0, $matrix);


function indsaet_data($mysqli,$budget,$dato,$tekst,$indtaegt,$udgift,$check,$matrix)
{  global $mysqli;
    if($stmt=$mysqli->prepare('INSERT INTO `'.$budget.'`(dato,tekst,indtaegt,udgift,tjek,oprettet) VALUES  (?,?,?,?,?,?) '))
    {  $stmt->bind_param('ssddss',$dato,$tekst,$indtaegt,$udgift,$check,$matrix);//  'si',$oprettet,$id)
        if($stmt->execute())
        {  $stmt->close();     
        }
        else
        {  die($stmt->error);
        }
    }
    else
    {
        die($mysqli->error);
    }
} //Funktion slut

Thomas V
Avatar billede arne_v Ekspert
11. juli 2021 - 19:41 #4
Pointen er at der skal bruges prepare, placerholders og bind_param.

Det må der være en million eksempler og ti tusing tutorials på nettet med.

( inkl. mine https://www.vajhoej.dk/arne/articles/phpdb.html#mysqli )

Det eksempel du har fundet på nettet ser ikke godt ud.

ikke prepare og parameters => dårligt eksempel

brug af global => dårlig PHP stil

brug af echo i kode stump som skal kunne inkluderes mange steder => dårligt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





CIO
Årets CIO 2022: Nu skal Danmarks dygtigste CIO findes - er det dig? Eller kender du en, du vil indstille?