Daftar dan Belajar Sekarang!

Tidak bisa insert ke database (mengikuti video sistem login dan register (oop php) - metode insert)

foto verified logo ahmadalexanderr
2 Kontribusi 0 Coto
3 bulan yang lalu
Saya mengikuti video php register dan login (oop) bagian metodi insert. Namun saya tidak berhasil memasukkan data ke dalam database. Tidak ada tulisan error. Saat ditampilkan dengan fungsi die muncul: https://www.dropbox.com/s/scsk6p91etutq97/Screen%20Shot%202019-02-18%20at%2000.28.25.png?dl=0 Namun saat database di refresh datanya tidak tersimpan : https://www.dropbox.com/s/0ojefxtyyb9uzu8/Screen%20Shot%202019-02-18%20at%2000.28.39.png?dl=0 Database.php :
<?php

class Database{

     private static $INSTANCE = null;
     private $mysqli,
             $HOST = 'localhost',
             $USER = 'root',
             $PASS = 'root',
             $DBNAME = 'tutorial_oop';

  public function __construct()
  {
    $this->mysqli = new mysqli( $this->HOST, $this->USER, $this->PASS, $this->DBNAME );
    if( mysqli_connect_error() ){
      die('gagal koneksinya');
    }
  }
    /* 
    single pattern, 
    menguji koneksi agar tidak double
    */
   public static function getInstance()
  {
    if( !isset( self::$INSTANCE ) ){
      self::$INSTANCE = new Database();
    }

    return self::$INSTANCE;
  }

  public function insert($table, $fields = array())
  {
    //mengambil kolom
    $column = implode(", ", array_keys($fields));

    //mengambil nilai
    $valueArrays = array();
    $i = 0;
    foreach($fields as $key=>$values){
        if ( is_int($values) ){
            $valueArrays[$i] = $values;
        }else{
            $valueArrays[$i] = "'" . $values . "'";
        }

        $i++;
    }

    $values = implode(", ", $valueArrays);

    $query = "INSERT INTO $table ($column) VALUES ($values)"; 

    die($query);

    if($this->mysqli->query($query)) return true;
    else return false;
  }
}
User.php:
<?php

class User{
    private $_db;

    public function __construct()
    {
        $this->_db = Database::getInstance();
    }

    public function register_user($fields = array())
    {
       if( $this->_db->insert('users', $fields) ) return true;
       else return false;
    }

}
?>
register.php :
<?php
    require_once 'core/init.php';

    if( Input::get('submit') ){
        
        $user->register_user(array(
            'usename' => Input::get('username'),
            'password' => password_hash(Input::get('password'), PASSWORD_DEFAULT)
        ));
    }

    require_once 'templates/header.php';
?>
<h2>Register now!</h2>

<form action="register.php" method="post">
<label>Username</label>
<input type="text" name="username"><br>

<label>Password</label>
<input type="password" name="password"><br>

<input type="submit" name="submit" value="Register Now!">

</form>
<?php require_once 'templates/footer.php'; ?>
-- phpMyAdmin SQL Dump
-- version 4.8.3
-- https://www.phpmyadmin.net/
--
-- Host: localhost:8889
-- Generation Time: Feb 16, 2019 at 11:50 AM
-- Server version: 5.7.23
-- PHP Version: 7.2.10

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

--
-- Database: `tutorial_oop`
--

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
Terima kasih sebelumnya
  • coba baca aturan main ya, untuk bertnaya yang lebih rapi. bungkus kode di dalam "tag kode", tuliskan tidak bisanya apa, apakah ada error, atau apa yang terjadi (silahkan diedit pertanyannya) - hilmanrdn
  • tidak bisanya apanya gan, ada errorkah, tulisan yang muncul apa, apa yang terjadi - hilmanrdn

Login untuk tulis komentar


Tag: php


Jawaban
foto dianarifr
551 Kontribusi 242 Coto
3 bulan yang lalu
username bukan usename
$user->register_user(array(
            //'usename' => Input::get('username'),
'username' => Input::get('username'),
            'password' => password_hash(Input::get('password'), PASSWORD_DEFAULT)
        ));
  • terima kasih sudah saya koreksi, namun data masih belum bisa masuk... - ahmadalexanderr

Login untuk tulis komentar



Login untuk diksusi di forum sekolah koding