Ingen held endnu :(
Jeg har en included en fil med følgende indhold:
-------
$db_server = "localhost";
$db_user = "xxxx";
$db_pw = "xxxx";
$db_name = "xxxx";
$mysqli = new mysqli($db_server, $db_user, $db_pw, $db_name);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
} else {
echo 'Forbindelse til database er ok.';
};
-------
Det virker tilsyneladende fint, da jeg kan sammenligne POST med en record i databasen.
Her er igen indholdet af min "tilføj bruger" funktion:
-------
<?php
/*$newname = $_POST['add_name'];
$newemail = $_POST['add_email'];
$newpassword = $_POST['add_password'];
$newusergroup = $_POST['add_usergroup'];*/
// test data
$newname = "RonOls";
$newemail = "ronols@olsensweb.dk";
$newpassword = "1234"; // skal krypteres med feks sha512
$newusergroup = TRUE;
if ($newusergroup == TRUE) {
$newusergroupname = "Administrator";
$newusergroupid = 1;
} else {
$newusergroupid = 2;
};
// Kontrol af variabler
echo '<p>Dette er brugernavnet: ' . $newname . '</p>';
echo '<p>Dette er emailadressen: ' . $newemail . '</p>';
echo '<p>Dette er adgangskoden: ' . $newpassword . '</p>';
if ($newusergroupid == 1) {
echo '<p>Brugeren er ' . $newusergroupname . '</p>';
} else {
echo '<p>Brugeren er ikke administrator.</p>';
};
/* create a prepared statement */
if ($stmt = $mysqli->prepare("INSERT INTO `users` (`username`, `email`, `password`, `usergroup`) VALUES (?, ?, ?, ?)")) {
/* bind parameters for markers */
$stmt->bind_param("sssi", $newname, $newemail, $newpassword, $newusergroupid);
/* execute query */
$stmt->execute();
/* close statement */
$stmt->close();
} else {
echo 'Noget gik galt...';
};
/* close connection */
$mysqli->close();
?>
-------
Og her er en export af tabellen:
-------
-- phpMyAdmin SQL Dump
-- version 4.0.10.7
--
http://www.phpmyadmin.net--
-- Host: localhost:3306
-- Generation Time: Apr 27, 2016 at 11:57 PM
-- Server version: 10.0.24-MariaDB
-- PHP Version: 5.4.31
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `kousholt_playground`
--
-- --------------------------------------------------------
--
-- Table structure for table `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`username` varchar(30) COLLATE utf8_danish_ci NOT NULL,
`email` varchar(30) COLLATE utf8_danish_ci NOT NULL,
`userpw` varchar(30) COLLATE utf8_danish_ci NOT NULL,
`usergroup` int(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=8 ;
--
-- Dumping data for table `users`
--
INSERT INTO `users` (`id`, `username`, `email`, `userpw`, `usergroup`) VALUES
(1, 'Jan', 'jan-mail', '1234', 1),
(2, 'Jeanette', 'Jeanette-mail', '1234', 2);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-------
Jeg håber du stadig kan hjælpe :o)
- Password vil blive krypteret. Men lige nu lærer jeg blot.
- Hvordan laver du quotes omkring den kode du poster her på Eksperten?
- Bør jeg bruge $mysqli->close(); efter hver gang jeg har lavet en query?
- Hvordan tilføjer jeg fejlbeskrivelse hvis en query fejler?