php help

wpmanoj

Well-known member
  • Nov 18, 2010
    2,630
    6,382
    113
    am trying to insert multiple raw data using foreach and for loop. script work properly. am using pdo insert data to mysql.
    insert work properly but have a big problem. no error reporting. php 5.4 mysql 5.5

    var1 = 'man', var2 = '1', var3 = 'a'
    var1 = 'gt', var2 = '1', var3 = 'a'
    var1 = 'cook', var2 = '1', var3 = 'a'

    //mysql table
    var1 varchar(50) not null unique,
    var2 varchar(50) not null,
    var3 tinytext not null

    //am suppose
    var1 var2 var3
    man 1 a
    gt 1 a
    cook 1 a

    //but its works like this <space> mean just space
    var1 var2 var3
    <space> 1 a
    <space> 1 a
    cook 1 a

    last one inserting properly. others not working. help me

    //script php

    $words = array('man','pan','can');
    foreach($words as $var1){
    var2 = 1;
    var3 = a;

    $obj = new myclass( array(
    "var1"=> isset( $var1 ) ? (string) $var1 :"",
    "var2"=> isset( $var2 ) ? (string) $var2 :"",
    "var3"=> isset( $var3 ) ? (string) $var3 :"",
    ) );

    $obj->insert();
    }

    //class myclass

    class myclass extends DObject {
    protected $data = array(
    "var1" => "",
    "var2" => "",
    "var3" => ""
    );

    public function insert() {
    $conn = parent::connect();
    $sql = "INSERT INTO " . TBL_MYTBL . " (
    var1,
    var2,
    var3
    ) VALUES (
    :var1,
    :var2,
    :var3
    )";
    try {
    $st = $conn-> prepare( $sql );
    $st-> bindValue( ":var1", $this-> data["var1"], PDO:: PARAM_STR );
    $st-> bindValue( ":var2", $this-> data["var2"], PDO:: PARAM_STR );
    $st-> bindValue( ":var3", $this-> data["var3"], PDO:: PARAM_STR );
    $st-> execute();
    parent::disconnect( $conn );
    } catch ( PDOException $e ) {
    parent::disconnect( $conn );
    die( "Query failed: " . $e-> getMessage() );
    }
    }

    }

    //dobject class

    abstract class DObject {
    protected $data = array();

    public function __construct( $data ) {
    foreach ( $data as $key => $value ) {
    if ( array_key_exists( $key, $this-> data ) ) $this-> data[$key] = $value;
    }
    }
    protected static function connect() {
    try {
    $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $conn-> setAttribute( PDO::ATTR_PERSISTENT, true );
    $conn-> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    } catch ( PDOException $e ) {
    die( "Connection failed: " . $e-> getMessage() );
    }
    return $conn;
    }

    protected static function disconnect( $conn ) {
    $conn = "";
    }
    }
     
    Last edited: