PHP Programming Spring 2013 Exercise: PDO - PHP Data Objects See your text and the "Programming Examples" link for help with these questions. This exercise uses the table (file) named Item from the PHP to MySQL Basics exercise, with data stored by load utility. Item has these attributes: id, decimal(5) primarykey, name varchar(15), cost decimal(5,2). 1. Code a script named db.php with statement to instantiate a new PDO object passing parameters for data source name, user name, password, and error mode options. Include a try block to invoke this statement, plus a catch (PDOException $e) {} block with statements to present an error message and invoke exit(). The options parameter is an array variable with this element value and key: PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION. 2. Prepare an html form to collect an item id, name and cost. This form's action is to invoke insertItem.php a script to insert an item row that uses the post method for parameter passing. Include input tags with type text fields for name = "id", name = "name", name = "cost", and for the submit type. 3. Create a PHP script that includes db.php to connect to a database, defines $sql, a PHP string for an SQL INSERT statement, and uses PDO syntax inside a try{} to prepare a statement object, bind parameters to that statement, have that statement invoke execute(), rowCount(), and closeCursor(). Provide a catch for PDOException and print an error message. 4. Prepare an html form to collect an item id and cost. This form's action is to invoke a php program to update the cost in one item row and uses the post method for parameter passing. Include input tags for type text fields for name = 'id', cost = 'cost', and for the submit type. 5. Code the php update program referenced in the action option of the input form. a. Assign the $_POST[] parameter values for 'id' and 'cost' to local variables. b. Define an update string variable, with named parameters for those variables. c. Then try{} to prepare statement object (e.g. $statement) the value returned when the $db object invokes prepare($sql); have $statement bind values to the named parameters by having it invoke bindValue(:namedParm, $var) for corresponding variables $id and $cost; have statement invoke execute( ) to execute the update string d. catch(PDOException $e); 6. Create a PHP script that connects to a database, defines a PHP string for an SQL SELECT statement and uses PDO syntax to prepare,[ bind parameters,] execute a query, then fetch query results for printing before closing the connection. a. For the select string, specify any needed named parameters (e.g. in where clause). b. Assign to a statement object (e.g. $statement) the value returned when $db invokes prepare($sql). c. Have $statement invoke execute( ) for query results that can be fetched. d. Should more than one result row be expected, construct a while with an expression that has $statement invoke fetch( ). The while statement body could print local variables bound to named parameters. e. After fetching the result set, have $statement invoke closeCursor().