I am trying to switch from mysql to PDO and not ure how to go about this I get Fatal error: Call to undefined method PDO::prepared() in C:\wamp\www\Systems\insert_process.php on line 12 Looking to see if any one can give me a sample or point me in the right direction all tutorials are showing me how to insert data but not with a submit form.
<?php
$db_host = "localhost";
$db_username = "root";
$db_pass = "";
$db_name = "systems_requests";
$dbh = new PDO('mysql:host='.$db_host.';dbname='.$db_name,$db_username,$db_pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$add_member= $dbh->prepared("INSERT INTO requests(lanId, name, department, manager, request, request_description, request_comments, status, comments, compUser, compDt) Values (?,?,?,?,?,?,?,?,?,?)");
$add_member->bindParam(1, $_POST["lanId"]);
$add_member->bindParam(2, $_POST["name"]);
$add_member->bindParam(3, $_POST["department"]);
$add_member->bindParam(4, $_POST["manager"]);
$add_member->bindParam(5, $_POST["request"]);
$add_member->bindParam(6, $_POST["request_description"]);
$add_member->bindParam(7, $_POST["request_comments"]);
$add_member->bindParam(8, $_POST["status"]);
$add_member->bindParam(9, $_POST["comments"]);
$add_member->bindParam(10, $_POST["compUser"]);
$add_member->bindParam(11, $_POST["compDt"]);
$dbh->close();
$email = $_POST["emailaddress"];
$to = "";
$subject = "Systems Request";
$headers = "From: ";
$message = "LanID: " . $lanId . "
" ."User Name: ". $name ."
". "Department: " . $department . "
" ."Manager: ". $manager . "
". "User Request: " . $request . "
" ."User Request Description: ". $request_description . "
" ."User Request comments: ". $request_comments . "
" ."Status: " . $status . "
" ."Systems comments: ". $comments . "
" ."Completed by: ". $compUser ;
mail($to,$subject,$message,$headers);
echo ("<br> <a href='http://a0319p528/dc399Homepage/'> DC399Homepage </a>");
?>
<html>
<body>
<br><br><br>
<h1 align="center">Systems Request Confirmation</h1>
<p align="center">Thank you, <?php echo $_POST["name"]; ?><br><br>
Your request has been sent. Your request number is <?php echo $id;?><br>
Please write this number down or print this page out.</p>
<div align="center">
<h2>Request Information</h2>
Date Request: <?php $date = new DateTime();
echo $date->format('m/d/Y H:i:s') . "\n"; ?><br>
Manager: <?php echo $_POST["manager"]; ?><br>
Location: <?php echo $_POST["department"]; ?><br>
Request Issue: <?php echo $_POST["request"]; ?> <?php echo $_POST["request_description"]; ?><br>
Request Comments: <?php echo $_POST["request_comments"]; ?><br>
</div>
<div align="center">
<h2>Status Information</h2>
Status: <?php echo $_POST["status"]; ?><br><br><br><br>
</div>
<div align="center"><button onClick="window.print()">Print this page</button></div>
</body>
</html>
You've made an edit without marking it as an edit under your original question.
This is as per your originally posted question should anyone ask why (the answer).
It's prepare and not prepared which is the reason why you're getting the fatal error.
$add_member= $dbh->prepare("INSERT INTO requests ...
Plus, you're not executing
add:
$add_member->execute();
after
$add_member->bindParam(11, $_POST["compDt"]);
as per the docs
http://php.net/pdo.prepared-statements
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute(); // <=== right there
// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
and
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
Edit and as per your comment:
"I am getting this error now Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp\www\Systems\insert_process.php on line 25"
You have 11 binds but only 10 values
(?,?,?,?,?,?,?,?,?,?)
add one.
(?,?,?,?,?,?,?,?,?,?,?)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With