Обучение/Помощь новичкам | Вопрос по ПДО
Тема закрыта by
SNEG
Начал учить пдо только, правильно я перевел запрос с MySQLi на PDO?
________
посл. ред. 04.02.2018 в 20:32; всего 4 раз(а); by SNEG
<?php
// MySQLi варик
$login = mysqli_query($mysqli_connect, "SELECT `id` FROM `users` WHERE `login` = '".$_POST['login']."'");
if(mysqli_num_rows($login) == 1)
$error .= 'Пользователь с таким логином уже зарегистрирован, используйте другой.';
//ПДО варик
if($db->query("SELECT `id` FROM `users` WHERE `login` = '".$db->quote($_POST['login'])."'")->rowCount() == 1)
$error .= 'Пользователь с таким логином уже зарегистрирован, используйте другой.';
________
посл. ред. 04.02.2018 в 20:32; всего 4 раз(а); by SNEG
Подготовка запроса где? (prepare)
Да и вообще структура запроса не верная. ты берешь ID юзверя с таким логином, а надо кол-во (SELECT COUNT(`id`) )
RUS (04.02.2018 в 20:19)
Да и вообще структура запроса не верная. ты берешь ID юзверя с таким логином, а надо кол-во (SELECT COUNT(`id`) )
Да и вообще структура запроса не верная. ты берешь ID юзверя с таким логином, а надо кол-во (SELECT COUNT(`id`) )
Зачем считать количество id если я считаю количество строк rowCount()
________
посл. ред. 04.02.2018 в 20:24; всего 1 раз(а); by SNEG
RUS , count если не ошибаюсь дольше выполняется.
SNEG , пост 2
CyberShot (04.02.2018 в 20:35)
SNEG , пост 2
пост 1, quote() вместо prepare
SNEG , пост 2
________
посл. ред. 04.02.2018 в 20:38; всего 2 раз(а); by SNEG
SNEG , не то. Если не ошибаюсь. Сначала нужно подготовить запрос, а потом уже через execute писать в него данные. Посмотри в зц пример в новых файлах, там уже многие используют пдо.
$row = $db->prepare("SELECT `id` FROM `users` WHERE `login` = ?');
$row -> execute([$_POST['login']]);
$row = $row -> rowCount();
if ($row == 1) $error = 'Ошибка';
Евгений (04.02.2018 в 20:50)
$row = $db->prepare("SELECT `id` FROM `users` WHERE `login` = ?');
$row -> execute([$_POST['login']]);
$row = $row -> rowCount();
if ($row == 1) $error = 'Ошибка';
А не так ли случайно правильней?
<?php
$row = $db->prepare("SELECT `id` FROM `users` WHERE `login` = ?');
$row->bind_param("s", $_POST['login']);
$row -> execute();
$row = $row -> rowCount();
if ($row == 1) $error = 'Ошибка';
________
посл. ред. 04.02.2018 в 20:59; всего 2 раз(а); by SNEG
Стр.: 1, 2