PHP MySQL извлечения одного значения из базы данных

Эй, ребята, это действительно нубский вопрос, но по какой-то причине я не могу получить одно значение из базы данных.

Вот код, который я использую:

$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

0

Решение

Я знаю, что это не ответ, просто пытаюсь отправить код в 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());
1

Другие решения

column это зарезервированное слово в MySQL и должен быть экранирован с помощью « ‘. Вам также не хватает точки с запятой в конце строки. Попробуйте следующее:

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

$oldValue = $stmt->fetch();
1

возможно, проблема связана с вашими данными, но при наличии дублированных данных вы можете воспользоваться одним из следующих:

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

или же

$stmt = $pdo->prepare("SELECT column FROM teacher WHERE id = :id limit 1")
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)
0
По вопросам рекламы [email protected]