PHP MySQL 从数据库中检索单个值


php mysql retrieving single value from database

嘿伙计们,这是一个真正的菜鸟问题,但由于某种原因,我似乎无法从数据库中获取单个值。

这是我正在使用的代码:

$stmt = $pdo->prepare("SELECT column FROM teacher WHERE id = :id")
$stmt->bindParam(':id', $id);
$stmt->execute();
$oldValue = $stmt->fetchColumn();

我确实在代码中过滤了变量,因为我将它们作为发布数据在此文件中获取,这是该部分的代码:

$column = filter_input(INPUT_POST, "column", FILTER_SANITIZE_STRING);
$id = filter_input(INPUT_POST, "id", FILTER_SANITIZE_STRING);
$value = filter_input(INPUT_POST, "value", FILTER_SANITIZE_STRING);

在同一文件中,更新数据库可以正常工作,因此连接到数据库可能不是问题。请帮忙!谢谢

来自$stmt的完整错误:

致命错误:

未捕获的异常"PDOException",消息为"SQLSTATE[42000]":语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在/var/www/roles/testTableDataUpload.php:25Stack trace:#0/var/www/roles/testTableDataUpload.php(25( 中第 1 行的"列 FROM teacher WHERE id = ?"附近使用的正确语法: PDO->准备('选择F列...'(#1 {main} 扔在第 25 行的/var/www/roles/testTableDataUpload.php

我知道

这不是答案,只是试图将代码发布到 OP。

jquery:

var data="id="+id;
        $.ajax({
            type:"POST",
            data: data,
            url:"somePHPdbPage.php",
            success: function(result){
            $('#blah').html(result);
            }
    });

然后在主页上的某个地方执行以下操作:

 <div id='blah'></div>

这将做的是将结果添加到div blah。 你应该在你的主页上清楚地看到它。 然后 C/P 你想要的一切。 得出去一会儿。 将重新入住。

在您的 PHP 页面上:

$stmt = $pdo->prepare("SELECT column FROM teacher WHERE id = :id")
$stmt->bindParam(':id', $id);
$stmt->execute();
print_r($stmt->errorInfo());

>column是MySQL中的保留字,必须使用"进行转义。行尾还缺少分号。请尝试以下操作:

$stmt = $pdo->prepare("SELECT `column` FROM teacher WHERE id = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
$oldValue = $stmt->fetch();
问题

可能出在您的数据上,但如果有重复的数据,您可以使用以下方法之一:

$stmt = $pdo->prepare("SELECT distinct column FROM teacher WHERE id = :id")

$stmt = $pdo->prepare("SELECT column FROM teacher WHERE id = :id limit 1")

如果您在教学表中有一个名为"first_name"的列,您应该能够执行以下操作

$stmt = $pdo->prepare("SELECT first_name FROM teacher WHERE id = :id ORDER BY id DESC limit 1")
$stmt->bindParam(':id', $id);
$stmt->execute();
$row = $stmt->fetch(PDO:FETCH_ASSOC);
echo $row['first_name']; //Will print out the first name (if that is a column in your table of course)