Skip to main content

How to implement PDO in PHP

Introduction PHP PDO 

Connecting to SQL:
1. new PDO("sqlsrv:Server=$servername; Database=$dbname",$username,$password);

Connecting to Oracle:
       1. new PDO("OCI:dbname=accounts;charset=UTF-8","username","password");

Connecting to PgSQL:
1. $db = new PDO("pgsql:dbname=pdo;host=localhost","username", "password");


Connecting to MySQL:
1. $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');


2. $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password',
array(PDO::ATTR_EMULATE_PREPARES => false,
                                        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

3. $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
          $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

Error Handling  
try {
   $stmt = $db->query("SELECT * FROM Employee");
return $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $ex) {
   echo "An Error occured!".$ex->getMessage();
}

Select Statements
$stmt = $db->query('SELECT * FROM Employee');
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['field1'].' '.$row['field2']; //etc...
}

or

$stmt = $db->query('SELECT * FROM Employee');
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

Note: 
1. Use of PDO::FETCH_ASSOC in the fetch() and fetchAll() return the rows as an associative array with the field names as keys.
2. PDO::FETCH_NUM returns the row as a numerical array.

Getting Row Count
$stmt = $db->query('SELECT * FROM Employee');
$row_count = $stmt->rowCount();
echo $row_count.' rows selected';

Getting the Last Insert Id
$result = $db->exec("INSERT INTO Employee(firstname, lastname)
                                            VALUES('Johny', 'Deep')");
$insertId = $db->lastInsertId();

Update Query
$affected_rows = $db->exec("UPDATE Employee SET firstname='John'");
echo $affected_rows.' were affected'

Statements With Parameters
$stmt = $db->prepare("SELECT * FROM Employee WHERE id=? AND name=?");
$stmt->execute(array($id, $name));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

Bind parameters
$stmt = $db->prepare("SELECT * FROM Employee WHERE id=? AND name=?");
$stmt->bindValue(1, $id, PDO::PARAM_INT);
$stmt->bindValue(2, $name, PDO::PARAM_STR);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

bind with named parameters
$stmt = $db->prepare("SELECT * FROM Employee WHERE id=:id AND name=:name");
$stmt->bindValue(':id', $id, PDO::PARAM_INT);
$stmt->bindValue(':name', $name, PDO::PARAM_STR);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

or
$stmt = $db->prepare("SELECT * FROM Employee WHERE id=:id AND name=:name");
$stmt->execute(array(':name' => $name, ':id' => $id));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

or
$stmt = $db->prepare("SELECT field FROM Employee WHERE field LIKE ?");
$stmt->bindValue(1, "%$search%", PDO::PARAM_STR);
$stmt->execute();

Executing prepared statements in a loop
$values = array('bob', 'alice', 'lisa', 'john');
$name = '';
$stmt = $db->prepare("INSERT INTO Employee(`name`) VALUES(:name)");
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
foreach($values as $name) {
  $stmt->execute();
}

Comments

  1. Getting the Last Insert Id
    $result = $db->exec("INSERT INTO Employee(firstname, lastname)
    VAULES('Johny', 'Deep')");
    $insertId = $db->lastInsertId();
    Please correct the spelling mistake VAULES Should be Values

    ReplyDelete

Post a Comment

Popular posts from this blog

Generate XML file in Cakephp

Steps to Generate XML file using CakePHP: Step-1 Enable to parse xml extension in config route.php file.     Router::parseExtensions('xml'); Step-2 Add Request Handler Component to the Controller    var $components = array(‘RequestHandler’); Step-3 Add controller Action For XML Generation in Post Controller     function generateXMLFile()     {         if ($this->RequestHandler->isXml()) { // check request type             $this->layout = 'empty'; // create an empty layout in app/views/layouts/empty.ctp              }        }  Add header code in empty layout <?php header('Content-type: text/xml');?> <?php echo $this->Xml->header(); ?> <?php echo $content_for_layout; ?> Step-4 Set up View To generate XML Create xml folder inside Posts vi...

How To Create Shortcodes In WordPress

We can create own shortcode by using its predified hooks add_shortcode( 'hello-world', 'techsudhir_hello_world_shortcode' ); 1. Write the Shortcode Function Write a function with a unique name, which will execute the code you’d like the shortcode to trigger: function techsudhir_hello_world_shortcode() {    return 'Hello world!'; } Example: [hello-world] If we were to use this function normally, it would return Hello world! as a string 2. Shortcode function with parameters function techsudhir_hello_world_shortcode( $atts ) {    $a = shortcode_atts( array(       'name' => 'world'    ), $atts );    return 'Hello ' . $a['name'] . !'; } Example: [hello-world name="Sudhir"] You can also call shortcode function in PHP using do_shortcode function Example: do_shortcode('[hello-world]');

How to replace plain URLs with links

Here we will explain how to replace Urls with links from string Using PHP $string ='Rajiv Uttamchandani is an astrophysicist, human rights activist, and entrepreneur. Academy, a nonprofit organization dedicated to providing a robust technology-centered education program for refugee and displaced youth around the world.  CNN Interview - https://www.youtube.com/watch?v=EtTwGke6Jtg   CNN Interview - https://www.youtube.com/watch?v=g7pRTAppsCc&feature=youtu.be'; $string = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.%-=#]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $string); Using Javascript <script> function linkify(inputText) {     var replacedText, replacePattern1, replacePattern2, replacePattern3;     //URLs starting with http://, https://, or ftp://     replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;     replacedText = inputT...