0

I don't know what I'm doing wrong here, but I'm having hard time trying to insert data from a form into the database.The $_session['username'] is set and the database is included and working

Here is my table

  CREATE TABLE IF NOT EXISTS `accounts` (
  `accid` int(11) NOT NULL AUTO_INCREMENT,
  `acc_number` varchar(50) NOT NULL,
  `cust_name` varchar(255) NOT NULL,
  `cust_tel` varchar(50) NOT NULL,
  `cust_address` varchar(255) NOT NULL,
  `cust_opendate` date NOT NULL,
  `cust_openamount` decimal(13,2) NOT NULL,
  `cust_balance` decimal(13,2) NOT NULL,
  `cust_message` text NOT NULL,
  `cust_openby` varchar(50) NOT NULL,
  PRIMARY KEY (`accid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

and here is my code

<?php
session_start();


    $success = array();
    $errors = array();

    include('header.php');

    if (isset($_SESSION['username'])) {
        include_once('libs/db-con.php');

        if (isset($_POST['submit'])) {

            $accNumber = $_POST['accnumber'];
            $custName = $_POST['custname'];
            $tel = $_POST['tel'];
            $addess = $_POST['address'];
            $openDate = $_POST['opendate'];
            $openAmount = $_POST['openamount'];
            $balance = $_POST['balance'];
            $message = $_POST['message'];
            $openBy = $_SESSION['username'];

        if (empty($accNumber) || empty($custName) || empty($tel) || empty($addess) || empty($openDate)  || empty($openAmount) || empty($balance) || empty($openBy)) {

            $errors[] = 'All fields are required';

        }else{

            $query = $pdo->prepare("INSERT INTO accounts(acc_number, cust_name, cust_tel, cust_address, cust_opendate, cust_openamount, cust_balance, cust_message, cust_openby)  VALUE(?,?,?,?,?,?,?,?,?)" ) or die(mysql_error());

            $query->bindValue(1,$accNumber);
            $query->bindValue(2,$custName);
            $query->bindValue(3,$tel);
            $query->bindValue(4,$address);
            $query->bindValue(5,$openDate);
            $query->bindValue(6,$openAmount);
            $query->bindValue(7,$balance);
            $query->bindValue(8,$message);
            $query->bindValue(9,$openBy);


        $inserted = $query->execute();
        $inserted ? $success[] = 'New account has been added' : $errors[] = 'New account has not been added';

        }

    }


            $query = $pdo->prepare("SELECT max(acc_number) FROM accounts");

                    $query->execute();

                   while($num = $query->fetchAll()){

                    if($num[0] == null){

                    $accnumber = "100001";

                    }else{

                    $accnumber = $num[0]++; 
                }    
            }       

?>
     <div class="today-acc">
        <h3>create new account</h3>
        <div id="form-newacc">

    <form action="" method="post">
            <table>
                <tr>
                <td><label for="accnumber">Account No:</label>
                    <input type="text" name="accnumber" value="<?php echo $accnumber[0]; ?>"></td>
                <td><label for="custname">Name:</label>
                    <input type="text" name="custname"></td>
                <td><label for="tel">Tel:  </label>
                    <input type="text" name="tel"></td>
                </tr>
                <tr>
                <td><label for="address">Address:</label>
                    <input type="text" name="address"></td>
                <td><label for="opendate">Open date:</label>
                    <input type="text" name="opendate" id="datepicker"></td>
                <td><label for="openamount">Open Amount:</label>
                    <input type="text" name="openamount"></td>
                </tr>
                <tr>
                <td><label for="balance">Balance:</label>
                    <input type="text" name="balance"></td>
                <td><label for="message">Message:</label>
                    <textarea name="message" id="message"></textarea></td>
                </tr>
                </table>
                    <input type="submit" name="submit" Value="Create">
                    <input type="reset" name="reset" Value="clear">      
                </form>

                    <?php foreach ($success as $successes) {
                        echo '<div id="success">'.$successes.'</div>';
                    }?>
                    <?php foreach ($errors as $error) {
                        echo '<div id="errors">'.$error.'</div>';
                    }?>
    </div>
    </div>


<?php
}
else{

        header("location: login.php");
    }
?>   
3
Contributors
8
Replies
31
Views
4 Years
Discussion Span
Last Post by kaneo
0

I'm having hard time trying to insert data

Do you get an error? What is happening?

The following is wrong, as you are mixing PDO and MySQL here. PDO raises exceptions on errors.

$query = $pdo->prepare("INSERT INTO accounts(acc_number, cust_name, cust_tel, cust_address, cust_opendate, cust_openamount, cust_balance, cust_message, cust_openby)  VALUE(?,?,?,?,?,?,?,?,?)" ) or die(mysql_error());

Remove the or die() as it will fail if it is called.

Are all your bound parameters strings?

0

The only error i get is on line 45

$errors[] = 'New account has not been added';

I removed the Mysql or die() and its still the same.

0

yes PDO is installed and working.. it seems that i cant grab the values from the $_POST variable. for some reason if i add the value directly to the bindValue it works like $query->bindValue(1,'100006');
but if i do this $query->bindValue(1,$accNumber); it does not work.

Edited by kaneo

0

That's perhaps because the default binding type is string. Perhaps you should a the third parameter to indicate the right type.

0

you see im new to php/mysql, how do i do that? adding the third parameter.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.