gpt4 book ai didi

php - 将 MySql 插入转换为 PDO

转载 作者:行者123 更新时间:2023-11-29 00:13:04 24 4
gpt4 key购买 nike

我正在尝试将其转换为 PDO:

echo 'sup 1';                                        
$sql = "INSERT INTO blogData(
title,
content,
category)
VALUES (
:title,
:content,
:category)";
echo 'sup 2';
$stmt = prepare($sql);
echo 'sup 3';
$stmt->bindParam(':title', $_POST['title'], PDO::PARAM_STR);
$stmt->bindParam(':content', $_POST['content'], PDO::PARAM_STR);
$stmt->bindParam(':category', 'City Secrets', PDO::PARAM_STR);
echo 'sup 4';
$stmt->execute();
echo 'sup 5';
header('location: http://www.backToThePageIPostedOn.com');

这是我当前的代码,但它没有进入数据库:

$sql = "INSERT INTO blogData(
title,
content,
category)
VALUES (
:title,
:content,
:category)";

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

$stmt->bindParam(':title', $_POST['title'], PDO::PARAM_STR);
$stmt->bindParam(':content', $_POST['content'], PDO::PARAM_STR);
$stmt->bindParam(':category', 'City Secrets', PDO::PARAM_STR);

$stmt->execute();
header('location: http://www.backToThePageIPostedOn.com');

它在脚本页面上停止。这是我第一次使用 PDO,所以如果有人能指出我语法中的错误,我将不胜感激。

我的代码没有通过 echo 'sup 2';所以我相信错误在这一行中,$stmt = $pdo->prepare($sql);

我是按照教程做的,但我不明白他们为什么要添加 $pdo 中。我原以为那应该是我的连接,但我已将其设置为$con当我改变$pdo 到 $con 我仍然在 echo 'sup 2' 处得到相同的中断;

最佳答案

声明 bindParam 方法通过引用接受第二个参数。只有变量可以通过引用传递。

解决方案是将要绑定(bind)的参数分配给变量:

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

$title = $_POST['title'];
$content = $_POST['content'];
$category = 'City Secrets';

$stmt->bindParam(':title', $title, PDO::PARAM_STR);
$stmt->bindParam(':content', $content, PDO::PARAM_STR);
$stmt->bindParam(':category', $category, PDO::PARAM_STR);

$stmt->execute();

关于php - 将 MySql 插入转换为 PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24091192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com