嘿伙计们这是一个非常棒的问题,但由于某些原因,我似乎无法从数据库中获得单一价值。
以下是我使用的代码:
$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' with message' SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在教师附近使用FROM teacher WHERE id =?'在第1行'在/var/www/duties/testTableDataUpload.php:25堆栈跟踪:#0 /var/www/duties/testTableDataUpload.php(25):PDO->准备(' SELECT列F ...&#39 ;)在第25行的/var/www/duties/testTableDataUpload.php中抛出#1 {main}
答案 0 :(得分:1)
我知道这不是一个答案,只是试图将代码发布到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());
答案 1 :(得分:1)
column
是MySQL中的reserved word,必须使用&#39;`&#39;进行转义。你也错过了行尾的分号。请尝试以下方法:
$stmt = $pdo->prepare("SELECT `column` FROM teacher WHERE id = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
$oldValue = $stmt->fetch();
答案 2 :(得分:0)
问题可能与您的数据有关,但如果有重复数据,您可以使用以下其中一项:
$stmt = $pdo->prepare("SELECT distinct column FROM teacher WHERE id = :id")
或
$stmt = $pdo->prepare("SELECT column FROM teacher WHERE id = :id limit 1")
答案 3 :(得分:0)
如果教学表中有一个名为“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)