Эй, ребята, это действительно нубский вопрос, но по какой-то причине я не могу получить одно значение из базы данных.
Вот код, который я использую:
$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, на предмет правильного синтаксиса, который можно использовать рядом с ‘column FROMacher WHERE id =?’ в строке 1 ‘в /var/www/duties/testTableDataUpload.php:25 трассировки стека: # 0 /var/www/duties/testTableDataUpload.php(25): PDO-> prepare (‘ ВЫБРАТЬ столбец F … ‘) # 1 {main} добавлено в /var/www/duties/testTableDataUpload.php в строке 25
Я знаю, что это не ответ, просто пытаюсь отправить код в 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. и вы должны ясно видеть это на своей главной странице. тогда с / п все, что вы хотите. Приходится немного. проверим обратно
и на вашей странице 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)