С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/58: Рейтинг темы: голосов - 58, средняя оценка - 4.53
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496

MySql PDO connect как сделать подключение к базе ?

17.02.2014, 08:31. Показов 11307. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Вот нашел в интернете такую функцию для подключения к MySql

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
include('config/config.php');
?>
 
            <form id="login-register" method="post" action="index.php">
            <h1>Привет</h1>
            <input type="text" placeholder="Ваш логин" name="login" autofocus required />
            <input type="text" placeholder="Ваш пароль" name="password" autofocus required/>
            <input type="text" placeholder="Повторите пароль" name="r_password" autofocus required/>
            <input type="text" placeholder="тра ля ля" name="domain" autofocus required/>
            <input type="text" placeholder="тра ля ля" name="box_name" autofocus required/>
            <p>Спасибо что зашли</p>
            <button type="submit">Продолжить</button>
            </form>

И подключаемый файл в котором указываются подключения к базе MySql

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
$host = "127.0.0.1";
$db_name = "pam";
$login = "root";
$password = "123";
 
$connection = mysql_connect ("$host", "$login", "$password");
 
mysql_select_db("db_name",$connection);
mysql_query("set NAMES 'utf-8'");
?>
У меня показывает вот такую ошибку

PHP
1
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\Apache24\htdocs\config\config.php on line 8
Где то я вычитал в интернете что сейчас такая функция начинает устаревать, и скоро не будет поддерживаться разработчиками. Предлагается использовать функцию PDO для работы с базой.


Проверив phpunfo(); я убедился что у меня есть PDO. Но как сделать простое подключение что бы не было этой ошибки. Как правильно сделать подключение?

В интернете я нашел некоторые способы, но у меня все ровно ни как не получается, дабы не понятно просто.

Подскажите пожалуйста, как сделать с помощью PDO подключение?

Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2014, 08:31
Ответы с готовыми решениями:

Как сделать подключение к базе MySql?
Как сделать подключение к базе MySql ? Спасибо.

Подключение к базе данных через PDO или mysql_connect
Всем привет) Столкнулся с проблемой - при подключении к базе данных старинным методом: //константы для подключения к базе...

Подключение к базе данных через PDO. Правильный способ
Привет. Наткнулся на такое руководство http://phpfaq.ru/pdo. Автор пишет в уверенном стиле . Ваше мнение? Читать только оф.сайт или там...

16
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
17.02.2014, 09:46
Лучший ответ Сообщение было отмечено Favorskij как решение

Решение

Цитата Сообщение от Favorskij Посмотреть сообщение
сделать с помощью PDO подключение
PHP
1
2
3
4
5
6
7
8
$host = "127.0.0.1";
    $db_name = "e";
    $login = "root";
    $password = "";
     
    $connection = new PDO( 'mysql:host='.$host.';dbname='.$db_name, $login, $password );
    
    $connection->query("SET NAMES 'utf-8'");
1
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
17.02.2014, 09:51  [ТС]
Спасибо большое. Помогло. То что надо. Супер просто.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
17.02.2014, 09:51
Лучший ответ Сообщение было отмечено Favorskij как решение

Решение

Если ещё MySQLi. Процедурный стиль:
PHP
1
2
3
4
5
6
7
8
$host = "127.0.0.1";
    $db_name = "e";
    $login = "root";
    $password = "";
     
    $connection = mysqli_connect( $host, $login, $password, $db_name );
    
    mysqli_query($connection, "SET NAMES 'utf-8'");
ООП стиль:
PHP
1
2
3
4
5
6
7
8
$host = "127.0.0.1";
    $db_name = "e";
    $login = "root";
    $password = "";
     
    $mysqli = new mysqli( $host, $login, $password, $db_name );
    
    $mysqli->query("SET NAMES 'utf-8'");
1
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
17.02.2014, 10:06  [ТС]
А как вместе через PDO и MySqli ?

Просто я смотрю все в интернете говорят что нужно как то именно с помощью этих дух компанентов.

Добавлено через 1 минуту
Или я наверное ошибаюсь ))) Но всеже спасибо.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
17.02.2014, 10:08
Цитата Сообщение от Favorskij Посмотреть сообщение
А как вместе через PDO и MySqli ?
Вы их неправильно понимаете , либо они неправильно говорят . Нужно использовать или MySqli или PDO. Вместе их использовать не надо.
1
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
17.02.2014, 10:11  [ТС]
Все, понял. Спасибо.
0
0 / 0 / 1
Регистрация: 21.08.2015
Сообщений: 10
21.08.2015, 20:45
Para bellum, Добрый день, выручайте пожалуйста.Только новичок, не знаю. Проблема такая-же

PHP
1
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/u408228722/public_html/engine/classes/mysql.class.php on line 41

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
/**
 *
 *          
 *
 *          
 *
 *         
 *
 *          
 *
 */
if( ! defined( 'SAMP_STATS' ) ) die('HACK!!111!!');
 
 
 
DEFINE ("SQL_HOST", $mysql['mk_serv']);
DEFINE ("SQL_BDD", $mysql['mk_name']);
DEFINE ("SQL_USER", $mysql['mk_user']);
DEFINE ("SQL_PASSWORD", $mysql['mk_pass']);
 
class DB
{
        var $Host = SQL_HOST;
        var $Database = SQL_BDD;
        var $User = SQL_USER;
        var $Password = SQL_PASSWORD;
        var $Link_ID = 0;
        var $Query_ID = 0;
        var $Record = array();
        var $Row;
 
    public $timeQuery = 0;
    public $timeQueries = 0;
    public $numQueries = 0;
 
    function connect()
    {
        if($this->Link_ID == 0)
        {
            $this->Link_ID = mysql_connect($this->Host, $this->User, $this->Password) or die('Database error: Нет подключения к <b>' . $this->Host . '</b>');
            $SelectResult = mysql_select_db($this->Database, $this->Link_ID) or die(mysql_errno($this->Link_ID) . ': ' . mysql_error($this->Link_ID));
        }
        mysql_query('SET  NAMES \'cp1251\'', $this->Link_ID);
        #Если проблема с кодировкой - раскоментируйте строки (по одной)
        #mysql_query('SET CHARACTER SET \'cp1251_general_ci\', $this->Link_ID);
        #mysql_query('SET character_set_client=\'cp1251_general_ci\'', $this->Link_ID);
        #mysql_query('SET character_set_results=\'cp1251_general_ci\'', $this->Link_ID);
        #mysql_query('SET collation_connection=\'cp1251_general_ci\'', $this->Link_ID);
    }
 
    function query($str)
    {
        $timer = microtime(1);
        $this->connect();
        $this->Query_ID = mysql_query($str,$this->Link_ID) or die(mysql_errno($this->Link_ID) . ': ' . mysql_error($this->Link_ID));
 
        $this->timeQuery += microtime(1) - $timer;
        $this->timeQueries += $this->timeQuery;
        $this->numQueries++;
        return $this->Query_ID;
    }
 
    function fetch($str)
    {
        $this->Record = mysql_fetch_array($str);
        $this->Row += 1;
        $stat = is_array($this->Record);
        if (!$stat)
 
        {
            mysql_free_result($str);
            $str = 0;
        }
        return $this->Record;
    }
 
    function num($str)
    {
        return mysql_num_rows($str);
    }
 
    function insert()
    {
        return mysql_insert_id($this->Link_ID);
 
    }
 
    function affected()
    {
        return mysql_affected_rows($this->Link_ID);
    }
 
    function R_Escape($str)
    {
        return mysql_real_escape_string($str,$this->Link_ID);
    }
 
    function Escape($str,$quotes=false)
    {       if($str===null)
            return 'NULL';
        if(is_array($str))
        {
            foreach($str as &$v)
                $v=$this->Escape($v,$quotes);
            return $str;
        }
        if(is_int($str) or is_bool($str) or ctype_digit($str) and !isset($str[8]))
            return (int)$str;
        $str=$this->R_Escape($str);
        return $quotes ? '\''.$str.'\'' : $str;
    }
 
    function clean_results()
    {
        if($this->Query_ID != 0) return mysql_freeresult($this->Query_ID);
    }
 
    function close()
    {
        if($this->Link_ID != 0) return mysql_close($this->Link_ID);
    }
}
?>
0
13 / 13 / 2
Регистрация: 10.07.2015
Сообщений: 80
21.08.2015, 22:01
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/u408228722/public_html/engine/classes/mysql.class.php on line 41
Если это ошибка, то ругается он на mysql, нужно вместо этого использовать mysqli

---
Я тоже новичок))
0
0 / 0 / 1
Регистрация: 21.08.2015
Сообщений: 10
21.08.2015, 22:24
Цитата Сообщение от Kylych Посмотреть сообщение
Если это ошибка, то ругается он на mysql, нужно вместо этого использовать mysqli
---
Я тоже новичок))
если тат-то
PHP
1
2
3
4
5
6
Warning: mysql_select_db() expects parameter 2 to be resource, object given in /home/u408228722/public_html/engine/classes/mysql.class.php on line 43
 
Warning: mysql_errno() expects parameter 1 to be resource, object given in /home/u408228722/public_html/engine/classes/mysql.class.php on line 43
 
Warning: mysql_error() expects parameter 1 to be resource, object given in /home/u408228722/public_html/engine/classes/mysql.class.php on line 43
:
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.08.2015, 00:21
либо переходите на старую версию PHP, либо используйте mysqli/pdo..
0
0 / 0 / 1
Регистрация: 21.08.2015
Сообщений: 10
22.08.2015, 17:40
Цитата Сообщение от KOPOJI Посмотреть сообщение
либо переходите на старую версию PHP, либо используйте mysqli/pdo..
вот я сам не могу переходить, не могу понять..
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.08.2015, 21:04
Что именно вы не можете понять?
0
0 / 0 / 1
Регистрация: 21.08.2015
Сообщений: 10
22.08.2015, 21:54
вот это не могу понять как сделать на mysqli
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
/**
 *
 *          
 *
 *          
 *
 *         
 *
 *          
 *
 */
if( ! defined( 'SAMP_STATS' ) ) die('HACK!!111!!');
 
 
 
DEFINE ("SQL_HOST", $mysql['mk_serv']);
DEFINE ("SQL_BDD", $mysql['mk_name']);
DEFINE ("SQL_USER", $mysql['mk_user']);
DEFINE ("SQL_PASSWORD", $mysql['mk_pass']);
 
class DB
{
        var $Host = SQL_HOST;
        var $Database = SQL_BDD;
        var $User = SQL_USER;
        var $Password = SQL_PASSWORD;
        var $Link_ID = 0;
        var $Query_ID = 0;
        var $Record = array();
        var $Row;
 
    public $timeQuery = 0;
    public $timeQueries = 0;
    public $numQueries = 0;
 
    function connect()
    {
        if($this->Link_ID == 0)
        {
            $this->Link_ID = mysql_connect($this->Host, $this->User, $this->Password) or die('Database error: Нет подключения к <b>' . $this->Host . '</b>');
            $SelectResult = mysql_select_db($this->Database, $this->Link_ID) or die(mysql_errno($this->Link_ID) . ': ' . mysql_error($this->Link_ID));
        }
        mysql_query('SET  NAMES \'cp1251\'', $this->Link_ID);
        #Если проблема с кодировкой - раскоментируйте строки (по одной)
        #mysql_query('SET CHARACTER SET \'cp1251_general_ci\', $this->Link_ID);
        #mysql_query('SET character_set_client=\'cp1251_general_ci\'', $this->Link_ID);
        #mysql_query('SET character_set_results=\'cp1251_general_ci\'', $this->Link_ID);
        #mysql_query('SET collation_connection=\'cp1251_general_ci\'', $this->Link_ID);
    }
 
    function query($str)
    {
        $timer = microtime(1);
        $this->connect();
        $this->Query_ID = mysql_query($str,$this->Link_ID) or die(mysql_errno($this->Link_ID) . ': ' . mysql_error($this->Link_ID));
 
        $this->timeQuery += microtime(1) - $timer;
        $this->timeQueries += $this->timeQuery;
        $this->numQueries++;
        return $this->Query_ID;
    }
 
    function fetch($str)
    {
        $this->Record = mysql_fetch_array($str);
        $this->Row += 1;
        $stat = is_array($this->Record);
        if (!$stat)
 
        {
            mysql_free_result($str);
            $str = 0;
        }
        return $this->Record;
    }
 
    function num($str)
    {
        return mysql_num_rows($str);
    }
 
    function insert()
    {
        return mysql_insert_id($this->Link_ID);
 
    }
 
    function affected()
    {
        return mysql_affected_rows($this->Link_ID);
    }
 
    function R_Escape($str)
    {
        return mysql_real_escape_string($str,$this->Link_ID);
    }
 
    function Escape($str,$quotes=false)
    {       if($str===null)
            return 'NULL';
        if(is_array($str))
        {
            foreach($str as &$v)
                $v=$this->Escape($v,$quotes);
            return $str;
        }
        if(is_int($str) or is_bool($str) or ctype_digit($str) and !isset($str[8]))
            return (int)$str;
        $str=$this->R_Escape($str);
        return $quotes ? '\''.$str.'\'' : $str;
    }
 
    function clean_results()
    {
        if($this->Query_ID != 0) return mysql_freeresult($this->Query_ID);
    }
 
    function close()
    {
        if($this->Link_ID != 0) return mysql_close($this->Link_ID);
    }
}
?>
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.08.2015, 21:56
ну замените соответственно mysql_* на mysqli_*
Там все тоже самое, за малым исключением. На офф сайте примеры есть по каждой функции.
0
0 / 0 / 0
Регистрация: 02.05.2016
Сообщений: 1
02.05.2016, 04:54
Здравствуйте !
0
02.05.2016, 15:44

Не по теме:

И До Свидания)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.05.2016, 15:44
Помогаю со студенческими работами здесь

Perl + MySQL = ошибка DBI connect(dbname=mysql; host=localhost',''...) failed: Couldnt connect to
С перлом беда какая-то, третий день мучаюсь и ничего не получается... хелп!!!. use dbi; $dbh =...

Подключение к MySQL извне (10061 Cant connect)
Пытаюсь подключится к БД MySQL, установленном на своем же компе, через внешний IP. Пробовал через DSN и через MySQLQueryBrowser. ...

Не работает подключение к БД: Unable to connect to any of the specified mysql hosts
Не пойму, почему не работает подключение к бд. using System; using System.Collections.Generic; using System.ComponentModel; using...

PDO не получается сделать выборку из MySQL
Не так давно изучаю ООП и PDO пишу класс для соединения с базой. Ошибки не выдает но и выборки тоже не делает. private $_db; ...

Как сделать подключение к базе данных в Fast Report?
Народ, помогите пожалуйста. Как сделать подключение к базе данных в Fast Report? У меня не получается подключиться, пишет, что файл должен...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru