Jump to content

LyDev

New Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by LyDev

  1. I have insert in PDO. I need to write a select query before that and get the count of the rows. Based on that I must write an if condition before insert.

     

    Below is my code.

    <?php
    
    
    $dbhost = "localhost";
    $dbuser = "root";
    $dbpass = "";
    $dbname = "test";
    
    function placeholder( $text, $count = 0, $separator = ',' ) {
    	$result = array();
    
    	if ($count > 0) {
    		for ($x = 0; $x < $count; $x++) {
    			$result[] = $text;
    		}
    	}
    
    	return implode( $separator, $result );
    }
    
    $pdo = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
    
    $datafields = array( 'email' => '', 'var1' => '', 'var2' => '' );
    
    $data[] = array( 'email' => 'a@mail.com', 'var1' => 'test', 'var2' => 'test2' );
    $data[] = array( 'email' => 'b@mail.com', 'var1' => 'test', 'var2' => 'test2' );
    $data[] = array( 'email' => 'c@mail.com', 'var1' => 'test', 'var2' => 'test2' );
    
    $pdo->beginTransaction(); // Speed up your inserts
    
    $insertvalues = array();
    
    foreach ($data as $d) {
    	$questionmarks[] = '(' . placeholder( '?', sizeof($d)) . ')';
    	$insertvalues = array_merge( $insertvalues, array_values($d) );
    }
    
    $sql = "INSERT INTO engagements (" . implode( ',', array_keys( $datafields ) ) . ") VALUES " . implode( ',', $questionmarks);
    
    $statement = $pdo->prepare($sql);
    
    try {
    	$statement->execute($insertvalues);
    } catch(PDOException $e) {
    	echo $e->getMessage();
    }
    $pdo->commit();

     

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.