PHP/MySQL | MySQL vs MySQLi
Добрый вечер, кто что у себя использует?
На сколько ли необходимо использовать mysqli?
И все же в мелких проектах не актуальней ли использовать mysql? Чем копаться в архетиктуре mysqli?
На сколько ли необходимо использовать mysqli?
И все же в мелких проектах не актуальней ли использовать mysql? Чем копаться в архетиктуре mysqli?
почти одно и тоже по архитектуре. Если хотите изучать нового то сразу PDO.
663497723 (17.09.2021 в 19:25)
Добрый вечер, кто что у себя использует?
На сколько ли необходимо использовать mysqli?
И все же в мелких проектах не актуальней ли использовать mysql? Чем копаться в архетиктуре mysqli?
Добрый вечер, кто что у себя использует?
На сколько ли необходимо использовать mysqli?
И все же в мелких проектах не актуальней ли использовать mysql? Чем копаться в архетиктуре mysqli?
Одно и тоже, только в (i) лучше реализация.
Если стремаешься из-за oop mysqli, то знай, там есть и функциональный стиль)
Переход с mysql на mysqli лёгок до банального добавления этой самой буквы i))
FSeven, сейчас небольшая выдержка:
MySQLi - это улучшенный драйвер для работы с базами данных MySQL
Подробнее о драйвере вы можете прочитать в Википедии
Несколько примеров:
Инициализация базы данных
<?php
$mysqli = new mysqli('localhost','user','password','base');
if(!$mysqli) $mysqli->error;
Установка кодировки
<?php
$mysqli->set_charset('utf8');
Запрос в базу данных
<?php
//готовим запрос
$result = $mysqli->prepare("SELECT `col1`, `col2` FROM `table` WHERE `id`=?");
//вставляем параметры.
//'i' - integer, 'd' - double или float, 's' - string
$result->bind_param('i', $_GET['id']);
//выполняем запрос
if($result->execute()){
//подготавливаем переменные в которые будут занесены результаты
$result->bind_result($col1, $col2);
//заполняем переменные
$result->fetch();
//освобождаем память
$result->close();
}else{
//если запрос Не выполнился
//выдаем ошибку
die('error - '.$mysqli->errno.' - '.$mysqli->error);
}
Количество записей(1 вариант)
На примере предыдущего запроса
<?php
if($result->execute()){
$count = $result->num_rows;
$result->close();
}
Количество записей (2 вариант)
<?php
$result = $mysqli->prepare("SELECT COUNT(*) as `count` FROM `table`");
if($result->execute()){
$result->bind_result($count);
$result->fetch();
$result->close();
}
Последний id insert
<?php
$result = $mysqli->prepare("INSERT INTO `table` (`col_1`,`col_2`) VALUES (?,?)");
$result->bind_param('is', $int_val, $string_val);
if($result->execute()){
$last = $mysqli->insert_id;
$result->close();
}
Чтобы упростить работу с бд можно создать пользовательскую функцию, например:
<?php
function db(){
static $mysqli = null;
if(!$mysqli){
$mysqli = new mysqli('localhost','user','password','base');
$mysqli->set_charset('utf8');
}
return $mysqli;
}
function prepare($val){
return db()->prepare($val);
}
function otherUserFunc(){
$data = prepare("SELECT `password` FROM `users` WHERE `id`=?");
$data->bind_param('i', $_POST['id']);
if($data->execute()){
$data->bind_result($password);
$data->fetch();
$data->close();
}
if($password !== $_POST['password']){
return false;
}else{
return true;
}
}
MySQLi - это улучшенный драйвер для работы с базами данных MySQL
Подробнее о драйвере вы можете прочитать в Википедии
Несколько примеров:
Инициализация базы данных
<?php
$mysqli = new mysqli('localhost','user','password','base');
if(!$mysqli) $mysqli->error;
Установка кодировки
<?php
$mysqli->set_charset('utf8');
Запрос в базу данных
<?php
//готовим запрос
$result = $mysqli->prepare("SELECT `col1`, `col2` FROM `table` WHERE `id`=?");
//вставляем параметры.
//'i' - integer, 'd' - double или float, 's' - string
$result->bind_param('i', $_GET['id']);
//выполняем запрос
if($result->execute()){
//подготавливаем переменные в которые будут занесены результаты
$result->bind_result($col1, $col2);
//заполняем переменные
$result->fetch();
//освобождаем память
$result->close();
}else{
//если запрос Не выполнился
//выдаем ошибку
die('error - '.$mysqli->errno.' - '.$mysqli->error);
}
Количество записей(1 вариант)
На примере предыдущего запроса
<?php
if($result->execute()){
$count = $result->num_rows;
$result->close();
}
Количество записей (2 вариант)
<?php
$result = $mysqli->prepare("SELECT COUNT(*) as `count` FROM `table`");
if($result->execute()){
$result->bind_result($count);
$result->fetch();
$result->close();
}
Последний id insert
<?php
$result = $mysqli->prepare("INSERT INTO `table` (`col_1`,`col_2`) VALUES (?,?)");
$result->bind_param('is', $int_val, $string_val);
if($result->execute()){
$last = $mysqli->insert_id;
$result->close();
}
Чтобы упростить работу с бд можно создать пользовательскую функцию, например:
<?php
function db(){
static $mysqli = null;
if(!$mysqli){
$mysqli = new mysqli('localhost','user','password','base');
$mysqli->set_charset('utf8');
}
return $mysqli;
}
function prepare($val){
return db()->prepare($val);
}
function otherUserFunc(){
$data = prepare("SELECT `password` FROM `users` WHERE `id`=?");
$data->bind_param('i', $_POST['id']);
if($data->execute()){
$data->bind_result($password);
$data->fetch();
$data->close();
}
if($password !== $_POST['password']){
return false;
}else{
return true;
}
}
FSeven (17.09.2021 в 20:20)
Одно и тоже, только в (i) лучше реализация.
Если стремаешься из-за oop mysqli, то знай, там есть и функциональный стиль)
Переход с mysql на mysqli лёгок до банального добавления этой самой буквы i))
Одно и тоже, только в (i) лучше реализация.
Если стремаешься из-за oop mysqli, то знай, там есть и функциональный стиль)
Переход с mysql на mysqli лёгок до банального добавления этой самой буквы i))
Из примера выше, что бы вынести массив fetch_assoc тут спользуется целая куча системных функций
$data = prepare("SELECT `password` FROM `users` WHERE `id`=?");
$data->bind_param('i', $_POST['id']);
if($data->execute()){
$data->bind_result($password);
$data->fetch();
$data->close();
}
663497723, слушай, забудь про mysqli и тем более про mysql.
Это устаревшие вещи, которые юзать нельзя.
Используй PDO, и неважно каких размеров твой проект.
Это устаревшие вещи, которые юзать нельзя.
Используй PDO, и неважно каких размеров твой проект.
Mysql нет начиная с php 7
MySQL устарел, использую MySQLi. И вот выше ораторы пишут что забудь, используй PDO. Не совсем соглашусь, тут кому как удобнее. Я использую MySQLi и написал обертку над ним, удобство использования колоссальное
Чел, люди спорят pgsql vs mysql, и то, pH потихоньку захватывает рынок... А ты mysql vs mysqli... Начнем с того, что поддержка mysql в php кончилась 6 лет назад...
663497723 (18.09.2021 в 11:39)
FSeven, сейчас небольшая выдержка:
MySQLi - это улучшенный драйвер для работы с базами данных MySQL
Подробнее о драйвере вы можете прочитать в Википедии
Несколько примеров:
Инициализация базы данных
<?php
$mysqli = new mysqli('localhost','user','password','base');
if(!$mysqli) $mysqli->error;
Установка кодировки
<?php
$mysqli->set_charset('utf8');
Запрос в базу данных
<?php
//готовим запрос
$result = $mysqli->prepare("SELECT `col1`, `col2` FROM `table` WHERE `id`=?");
//вставляем параметры.
//'i' - integer, 'd' - double или float, 's' - string
$result->bind_param('i', $_GET['id']);
//выполняем запрос
if($result->execute()){
//подготавливаем переменные в которые будут занесены результаты
$result->bind_result($col1, $col2);
//заполняем переменные
$result->fetch();
//освобождаем память
$result->close();
}else{
//если запрос Не выполнился
//выдаем ошибку
die('error - '.$mysqli->errno.' - '.$mysqli->error);
}
Количество записей(1 вариант)
На примере предыдущего запроса
<?php
if($result->execute()){
$count = $result->num_rows;
$result->close();
}
Количество записей (2 вариант)
<?php
$result = $mysqli->prepare("SELECT COUNT(*) as `count` FROM `table`");
if($result->execute()){
$result->bind_result($count);
$result->fetch();
$result->close();
}
Последний id insert
<?php
$result = $mysqli->prepare("INSERT INTO `table` (`col_1`,`col_2`) VALUES (?,?)");
$result->bind_param('is', $int_val, $string_val);
if($result->execute()){
$last = $mysqli->insert_id;
$result->close();
}
Чтобы упростить работу с бд можно создать пользовательскую функцию, например:
<?php
function db(){
static $mysqli = null;
if(!$mysqli){
$mysqli = new mysqli('localhost','user','password','base');
$mysqli->set_charset('utf8');
}
return $mysqli;
}
function prepare($val){
return db()->prepare($val);
}
function otherUserFunc(){
$data = prepare("SELECT `password` FROM `users` WHERE `id`=?");
$data->bind_param('i', $_POST['id']);
if($data->execute()){
$data->bind_result($password);
$data->fetch();
$data->close();
}
if($password !== $_POST['password']){
return false;
}else{
return true;
}
}
FSeven, сейчас небольшая выдержка:
MySQLi - это улучшенный драйвер для работы с базами данных MySQL
Подробнее о драйвере вы можете прочитать в Википедии
Несколько примеров:
Инициализация базы данных
<?php
$mysqli = new mysqli('localhost','user','password','base');
if(!$mysqli) $mysqli->error;
Установка кодировки
<?php
$mysqli->set_charset('utf8');
Запрос в базу данных
<?php
//готовим запрос
$result = $mysqli->prepare("SELECT `col1`, `col2` FROM `table` WHERE `id`=?");
//вставляем параметры.
//'i' - integer, 'd' - double или float, 's' - string
$result->bind_param('i', $_GET['id']);
//выполняем запрос
if($result->execute()){
//подготавливаем переменные в которые будут занесены результаты
$result->bind_result($col1, $col2);
//заполняем переменные
$result->fetch();
//освобождаем память
$result->close();
}else{
//если запрос Не выполнился
//выдаем ошибку
die('error - '.$mysqli->errno.' - '.$mysqli->error);
}
Количество записей(1 вариант)
На примере предыдущего запроса
<?php
if($result->execute()){
$count = $result->num_rows;
$result->close();
}
Количество записей (2 вариант)
<?php
$result = $mysqli->prepare("SELECT COUNT(*) as `count` FROM `table`");
if($result->execute()){
$result->bind_result($count);
$result->fetch();
$result->close();
}
Последний id insert
<?php
$result = $mysqli->prepare("INSERT INTO `table` (`col_1`,`col_2`) VALUES (?,?)");
$result->bind_param('is', $int_val, $string_val);
if($result->execute()){
$last = $mysqli->insert_id;
$result->close();
}
Чтобы упростить работу с бд можно создать пользовательскую функцию, например:
<?php
function db(){
static $mysqli = null;
if(!$mysqli){
$mysqli = new mysqli('localhost','user','password','base');
$mysqli->set_charset('utf8');
}
return $mysqli;
}
function prepare($val){
return db()->prepare($val);
}
function otherUserFunc(){
$data = prepare("SELECT `password` FROM `users` WHERE `id`=?");
$data->bind_param('i', $_POST['id']);
if($data->execute()){
$data->bind_result($password);
$data->fetch();
$data->close();
}
if($password !== $_POST['password']){
return false;
}else{
return true;
}
}
Я это всё знаю)
И для авторизации я использую password_hash() и password_verify(), а по верх этого ещё и обратимое шифрование
________
посл. ред. 18.09.2021 в 14:36; всего 1 раз(а); by FSeven
Стр.: 1, 2