Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2020, 14:45   #1
Sereban
Новичок
Джуниор
 
Регистрация: 27.04.2020
Сообщений: 1
По умолчанию Подготавливаемый запрос PHP

Всем привет. Помогите, пожалуйста, разобраться с корректностью записи кода.
1. там ли htmlspecialchars и он ли должен быть для экранирования?
2. синтаксические ошибки в написанном prepare()?

function insert($name, $desc, $year, $rating, $poster, $category_id) {
$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');
if ($mysqli->connect_errno) {
printf('Connect failed: ' . $mysqli->connect_error);
exit();
}

/* instead 5,6,7 strings
if ($mysqli->connect_errno) {
die('Connect failed: ' . $mysqli->connect_errno);
}*/

$mysqli->set_charset('utf8');

/*$query = "INSERT INTO movie VALUES(null, '$name', '$desc', '$year', '$rating', '$poster', Now(), '$category_id')";*/
$stmt = htmlspecialchars($mysqli->prepare('INSERT INTO movie (null, name, desc, year, rating, poster, Now(), category_id) VALUES (?,?,?,?,?,?)'));
$result = false;
if($mysqli->query($query)) {
$result = true;
}
return $result;
}

$xml = simplexml_load_file("xml/movies.xml") or die("Error: Cannot create object");


$title = null;
$description = null;
$post = null;
$rating = null;
$year = null;

foreach ($xml as $movie_key => $movie) {
$title = $movie->title_russian;
$description = $movie->description;
$year = $movie->year;

foreach ($movie->poster->big->attributes() as $poster_key => $poster) {
$post = $poster;
}

if($movie->imdb) {
$rating = $movie->imdb->attributes()['rating'];
} else {
$rating = null;
}


$stmt -> bind_param('ssidsi', null, '$name', '$desc', '$year', '$rating', '$poster', Now(), '$category_id');
$stmt -> execute();

insert($title, $description, $year, $rating, $post, 1);
}

echo "<pre>";
print_r ($xml);
echo "</pre>";

СПАСИБО!
Sereban вне форума Ответить с цитированием
Старый 27.04.2020, 21:19   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Ну для начала, есть кнопочка код для оформления кода.
А по коду, естественно не верно, у вас там неверно не только htmlspecialchars, а почти везде.
Посмотрите на оф сайте доки, по работе с подготовленными запросами, посмотрите как передаются переменные и чем отличаются одинарные ковычки от парных.
uberchel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
приложение Weather, делаю запрос оп всем параметрам, которые были указанны на сайте, но запрос не выполняется MustafaDzhemadin Помощь студентам 2 19.11.2019 00:14
SQL запрос в php - запрос в базу данных так, чтобы еще возвращалось значение, сколько строк затронуто volni PHP 29 16.09.2019 11:49
Запрос на выборку и отчет на этот запрос Camelot_2012 Microsoft Office Access 2 21.12.2011 16:48
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50