Здравствуйте, необходимо записать в БД значение выбран ли checkbox или нет,у меня почему то записывается 0 в не зависимости выбран checkbox или нет если тип поля TINYINT, и если тип поля BIT то 1 в не зависимости выбран или нет.В чем ошибка? не правильно выбран тип поля? или ошибка в коде? PHP: <?php if(!$_POST) exit; if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n"); $host="localhost"; $user="root"; $pass="root"; //установленный вами пароль $db_name="u997029462_bo"; $link=mysqli_connect($host,$user,$pass); mysqli_select_db($link,$db_name); print_r($_POST); $firstName = $_POST['firstName']; $lastName = $_POST['lastName']; $textarea1 = $_POST['textarea1']; $ratEvent = $_POST['ratEvent']; $ratCom = $_POST['ratCom']; $ratingProg = $_POST['ratingProg']; $ratingPart = $_POST['ratingPart']; $ratingDisk = $_POST['ratingDisk']; $newprice_ch = $_POST['checkPub']; $resp = $_POST['resp']; $status = $_POST['status']; if (isset($_POST["firstName"])||isset($_POST["lastName"])||isset($_POST["textarea1"])||isset($_POST["ratEvent"])||isset($_POST["ratCom"])||isset($_POST["ratingProg"])||isset($_POST["ratingPart"])||isset($_POST["ratingDisk"])||isset($_POST["checkPub"])||isset($_POST["resp"])||isset($_POST["status"])) { //Вставляем данные, подставляя их в запрос $date = date('Y/m/d H:i:s'); $sql = "INSERT INTO `comment` (`Name`,`surname`, `status`,`comment`, `EventRating`,`OrganizationalCommitteeRating`,`ProgramRatingOfTheEvent`, `RatingOfPartners`,`DiscothequeRating`,`Publication`,`Photo`,`Date`) VALUES ('$firstName','$lastName','$status','$textarea1','$ratEvent','$ratCom','$ratingProg','$ratingPart','$ratingDisk','$newprice_ch','$resp','$date')"; $query = mysqli_query($link,$sql); //Если вставка прошла успешно if ($query) { echo $query; } else { echo $query; } }
int достаточно --- Добавлено --- https://site-do.ru/db/sql2.php --- Добавлено --- как ложка по метеориту... PHP: <?php if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) { ... } --- Добавлено --- вообще печалька прям... PHP: $link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db'); --- Добавлено --- а как много то их и все не верно употребим яд, а потом проверим безопасно ли ? --- Добавлено --- ну если ты не боишься хацкеров, то продолжай... --- Добавлено --- Убило... ( кто там юзает старпера старперов ?
Желательно молча. Вам что даже это непонятно: «употребим яд, а потом проверим безопасно ли»? И что вы вообще творите? Насколько помню, неустановленные чекбоксы вообще не отражаются во входящих параметрах. Это кстати, дает отличный шанс наплевать на собственно значение и не проверять его. Есть параметр, устанавливаем значение, иначе сбрасываем. Для хранения значения достаточно одного бита, т.е. вы всего лишь в байте можете хранить значения 8 флагов (чекбоксов). Пример: PHP: $val=0; for ($i=8;$i>0;$i--) { $val<<=1; if (isset($_POST['i'.$i])) $val|=1; }