[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не получается выполнить запрос с параметрами.
alexander.korotkov
Уже почти докапался до сути, но что-то не получается, не могу понять что именно, помогите пожалуйста.


$mysqli = mysqli_connect("localhost", "blog", "qwertyy", "blog");

$namePost = 'Защищенный пост';
$datePost = '0000-01-12';
$shortDescriptionPost = 'Короткое описание защищенного поста';
$descriptionPost = 'Полное описание защищенного от SQL инъекций поста.';
$actionPost = 1;

$stmt = $mysqli->prepare("INSERT INTO posts VALUES(NULL, ?, ?, ?, ?, ?)");
$stmt->bind_param('ssssd', $namePost, $datePost, $shortDescriptionPost, $descriptionPost, $actionPost);

$stmt->execute();
$stmt->close();


После выполнения этого куска кода ничего не происходит, запись в базу не добавляется и ошибок никаких не выдает. (Там где в VALUES у меня написано NULL - это id поле автоинкремент)
stump
Цитата
INSERT INTO posts VALUES(NULL, ?, ?, ?, ?, ?)


Думаю надо так:
INSERT INTO posts (name, date, ShortDesc, desc, action) VALUES(?, ?, ?, ?, ?)

или
INSERT INTO posts VALUE(NULL, ?, ?, ?, ?, ?)




_____________
Трус не играет в хокей
TranceIT
1) Надо указать в какие поля всавляете значения.
2) Если id с автоинкрементом, то указывать его в инсерте не нужно. Мускул сам его подставит.
А так получается что в поле id которое private_key и не может быть NULL вы передаете NULL.

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
alexander.korotkov
Цитата (TranceIT @ 24.05.2015 - 13:09)
1) Надо указать в какие поля всавляете значения.
2) Если id с автоинкрементом, то указывать его в инсерте не нужно. Мускул сам его подставит.
А так получается что в поле id которое private_key и не может быть NULL вы передаете NULL.

Добрый день. Пока еще не пробовал ни один из советов, вот сейчас начну, но по поводу второго пункта вы неправы. вот эта конструкция у меня прекрасно работает и все правильно вставляется, просто нужно защитить от SQL инъекций.

$query = "INSERT INTO posts VALUES(NULL, '$namePost', '$shortDescriptionPost', '$descriptionPost', '$datePost', '$actionPost')";
$result = $db->query($query);
alexander.korotkov
Короче капец полный, можно удалять пост, у меня просто в голове пусто. На самом деле, код, который я написал в первом посте рабочий и данные добавляются, просто в PHPmyAdmin на одной странице были показаны не все записи. Вновь добавленные перемещались на следующую страницу, а я этого не заметил)))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.