使用php pdo在数据库中插入记录[重复]

问题描述 投票:0回答:1

我正在使用下面的 php pdo 将用户博客文章插入到我的数据库中,但出现这样的错误

Fatal error: Call to a member function prepare() on a non-object in /public_html/postaction.php on line 34
我已经尝试修复,但不断给我不同的错误。有没有其他方法可以做到这一点或解决这个问题正在使用?

<?php
if($_POST) {

$sql = "INSERT INTO blog_post(BID,
            blog_title,
            blog_body,
            comments,
            UserName,
            Time,
            Date,
            likes,
            ip) VALUES (
            :BID, 
            :blog_title, 
            :blog_body, 
            :comments, 
            :UserName,
            :Time,
            :Date,
            :likes,
            :ip)";

$stmt = $pdo->prepare($sql);

$stmt->bindParam(':BID', $newId, PDO::PARAM_STR);       
$stmt->bindParam(':blog_title', $_POST['blog_title'], PDO::PARAM_STR); 
$stmt->bindParam(':blog_body', $_POST['blog_body'], PDO::PARAM_STR);
$stmt->bindParam(':comments', $_POST['comments'], PDO::PARAM_STR); 
$stmt->bindParam(':UserName', $_POST['UserName'], PDO::PARAM_STR); 
$stmt->bindParam(':Time', $_POST['Time'], PDO::PARAM_STR); 
$stmt->bindParam(':Date', $_POST['Date'], PDO::PARAM_STR); 
$stmt->bindParam(':likes', $_POST['likes'], PDO::PARAM_STR); 
$stmt->bindParam(':ip', $_POST['ips'], PDO::PARAM_STR);   

$stmt->execute(); 
$newId = $pdo->lastInsertId();
header('location: postblog.php?d=1');
}
else if(!isset($_POST)){
header('location: postblog.php?err=1');     
echo "Sorry!";
}
else{
    header('location: postblog.php?else=1'); 
}
?>
php mysql pdo
1个回答
4
投票
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO table(firstname, lastname, email)
VALUES (:firstname, :lastname, :email)");
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
$stmt->bindParam(':email', $email);

// insert a row
$firstname = "sample";
$lastname = "lastsamp";
$email = "[email protected]";
$stmt->execute();

header("Location: ."); // a redirect is a must after successful POST request
© www.soinside.com 2019 - 2024. All rights reserved.