Не удалось передать логическое значение через запрос SQL - PullRequest
1 голос
/ 17 марта 2019

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

<form action="recordBook.php" method="post">
    <input type="text" name="title" placeholder="Enter the book title">
    <input type="text" name="author" placeholder="Enter the author's name">
    <input type="checkbox" name="read" value="1">
    <br><input type="submit">
</form>

Следующий фрагмент php работает нормально, когда я не передаю последнюю переменную $ read. Всякий раз, когда я передаю $ read, выдается ошибка синтаксиса SQL. Я попытался несколько вариантов, чтобы заменить 1 и 0: истина, ИСТИНА и т. Д. Без положительного результата В моей базе данных столбец "read" установлен как tinyint

<?php

include "db_connect.php";

$title = $_POST['title'];
$author = $_POST['author'];
$read = isset($_POST['read']) ? 1 : 0;

echo "<script>console.log('".$title.$author.$read."');</script>";
$sql=("INSERT INTO books (title,author_name, read) VALUES ('$title','$author', '$read')");

if ($mysqli->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $mysqli->error;
}
?>

Кто-нибудь знает, что может вызвать эту ошибку?

Ответы [ 2 ]

1 голос
/ 18 марта 2019

Обнаружена проблема: чтение - это зарезервированное слово в phpMyAdmin, поэтому значение не может быть передано.

В базе данных я заменяю столбец «чтение» на «уже прочитано», и он работает правильно.

1 голос
/ 17 марта 2019

Пожалуйста, попробуйте это:

$read = $letter = isset($_POST['read']) ? 1 : 0;
...