嘿伙计们,这是一个真正的菜鸟问题,但由于某种原因,我似乎无法从数据库中获取单个值。
这是我正在使用的代码:
$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)