Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Trying to insert data from form with PDO [closed]

Tags:

php

mysql

pdo

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> 
like image 827
Donny Avatar asked Mar 28 '26 21:03

Donny


1 Answers

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.

(?,?,?,?,?,?,?,?,?,?,?)
like image 170
Funk Forty Niner Avatar answered Mar 31 '26 10:03

Funk Forty Niner



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!