Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 01.02.2019
Сообщений: 17
1

Подключение к базе данных

18.01.2020, 15:42. Показов 1836. Ответов 10

Author24 — интернет-сервис помощи студентам
Почему программа игнорирует данный код? И хотя я подключаюсь к базе данных по-другому, я хочу понять, в чём дело?Нет сообщения об ошибке. Тем более странно, что у автора в ютубе код работает.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function connect_db(){
    
    $mysqli=new mysqli("localhost","root","","double");
    
    
    if($mysqli->connect_error){
        die('Connect Error:'.$mysqli->connect_error);
        
    }else{
        echo 'Ты  подключилась';
    }
    
    return $mysqli;
}
    ?>
Помогите новичку!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2020, 15:42
Ответы с готовыми решениями:

Подключение к базе данных
Вечер добрый. Я начинающий php-шник. И вот у меня вопрос. Вот в этом уроке, описано создание...

Подключение к базе данных
Объясните начинающему PHP-исту: это нормально, или нет - для каждого запроса к серверу заново...

Подключение к базе данных
Подскажите. Кто-то знает сайт (site.ru) и доступ к базе данных Type = &quot;mysql&quot;; Host =...

JS и подключение к базе данных
/** * Created by Anton on 03.01.14. */ $(function(){ var $actionMessages =...

10
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
18.01.2020, 17:20 2
А где запуск функции?
0
1 / 1 / 0
Регистрация: 01.02.2019
Сообщений: 17
18.01.2020, 18:26  [ТС] 3
Запускала в другом файле <?php require_once 'fn.php'; ?>


PHP/HTML
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
<?php
 require_once 'fn.php';
 ?>
<?php include 'header.php';?>
<body>
<h3 style="test-align: center">Список</h3>
<div style="margin: 0 auto; width:450px">
<table border="2">
<tr>
    <th>id</th>
    <th>имя</th>
    <th>фамилия</th>
    <th>редактировать</th>
    <th>удалить</th>
 
</tr>
<tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
</tr>
</table>
</div>
 
</body>
 
 
 
<?php include_once 'footer.php';?>
  Также пробовала чистый код вставлять на нужную страницу:
<?php
 
$con=mysqli_connect('localhost','root','','double');
if(!$con){
        die('Connect Error:'.$con->connect_error);
        
    }else{
        echo'Ты  подключилась';
    }
 
 
    $sql="SELECT*FROM list";
        if($res=mysqli_query($con,$sql)){
            /*извлечение ассоциативного массива*/
            echo 'Запрос прошел';
        }else{
            echo'Запрос не прошел';
        }
        ?>
    <html>
<head>
<link href="CSS/style.css"rel="stylesheet" type="text/css"/>
</head>
<body>
<h3 style="test-align: center">Список</h3>
 
<table border="2">
<tr>
    <th>id</th>
    <th>имя</th>
    <th>фамилия</th>
    <th>редактировать</th>
    <th>удалить</th>
 
</tr>
<?
    while($row=mysqli_fetch_assoc($res)){
            ?>
 
 
 
 
 
<tr>
    
    <td><?php echo $row['id']?></td>
    <td><?php echo $row['first_name']?></td>
    <td><?php echo $row['last_name']?></td>
    <td><button>Редактировать</button></td>
    <td><button>Изменить</butto</td>
<?
        }
?>
</tr>
</table>
</div> 
</body>
</html>
Результат один!
0
Невнимательный
2599 / 976 / 321
Регистрация: 08.02.2013
Сообщений: 5,728
Записей в блоге: 2
18.01.2020, 19:33 4
просто запустите код из мануала
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$mysqli = new mysqli('localhost', 'xxx', 'xxx', 'xxx');/// здесь, если не проверяете вывод ошибки, Ваши логин пароль дб 
/*
 * Это "официальный" объектно-ориентированный способ сделать это
 * однако $connect_error не работал вплоть до версий PHP 5.2.9 и 5.3.0.
 */
if ($mysqli->connect_error) {
    echo ('Ошибка подключения (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}
/*
 * Если нужно быть уверенным в совместимости с версиями до 5.2.9,
 * лучше использовать такой код
 */
if (mysqli_connect_error()) {
    die('Ошибка подключения (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}
echo 'Соединение установлено... ' . $mysqli->host_info . "\n";
$mysqli->close();
?>
и если не видите сообщение о ошибке два раза значит версия Вашего php < 5.2.9

Добавлено через 7 минут
так же в начале можно добавить
PHP
1
2
3
4
if (!extension_loaded('mysqli')) {
echo   'mysqli not loaded'."<br>\n";
exit;
}
0
1 / 1 / 0
Регистрация: 01.02.2019
Сообщений: 17
18.01.2020, 19:47  [ТС] 5
Спасибо за работающий код. Наконец-то увидела: соединение установлено. Моя версия php :
Версия PHP 7.0.10
0
Невнимательный
2599 / 976 / 321
Регистрация: 08.02.2013
Сообщений: 5,728
Записей в блоге: 2
18.01.2020, 21:02 6
Цитата Сообщение от Эллина нет Посмотреть сообщение
работающий код.
там die() вместо echo()
и блок if (mysqli_connect_error()) .... не нужен

а вообще как сказали в Вашем коде наверное
PHP
1
2
3
require_once 'fn.php';
// нужен вызов / запуск
$con  = connect_db();
0
1 / 1 / 0
Регистрация: 01.02.2019
Сообщений: 17
19.01.2020, 17:25  [ТС] 7
Пробовала применить ваше предложение, но у меня программа не реагирует на данный код.
Вынуждена согласиться с предыдущим автором про неработающие операторы в некоторых версиях. Только удивляюсь, почему мой php 7 на третьей версии денвера не поддерживает данные операторы. Данные о версии получаю из info.php. Специально установила, чтобы все новинки работали.
0
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
19.01.2020, 18:02 8
delete

Добавлено через 2 минуты
x_lab, создайте отдельный файл типа test.php, добавьте туда подключение файла fn.php, подключение к БД и выполнение любого запроса. И заставьте этот код работать.

И проверьте, что включен вывод всех ошибок.
0
Невнимательный
2599 / 976 / 321
Регистрация: 08.02.2013
Сообщений: 5,728
Записей в блоге: 2
19.01.2020, 21:11 9
Цитата Сообщение от Эллина нет Посмотреть сообщение
php 7 на третьей версии
даже не знаю... под рукой нет 7.0
попробуйте вывести версию в скрипте
PHP
1
echo 'Текущая версия PHP: ' . phpversion() ."<br>\n";
apache думаю тоже пришлось новее устанавливать...
если не та версия сравните например с тем как я примерно думаю можно поменять версии https://www.cyberforum.ru/showthread.php?p=14180290

Не по теме:

денвер не успользую, просто попробовал



Добавлено через 17 минут
Jodah, спасибо, у меня немного другие проблемы были в тот момент...
на xUbuntu x64 стоял mysql 8.0, и такие попытки подключенния из под 7.3.11-0ubuntu0.19.10.2 вообще выдавали ошибку типа
Клиент не поддерживает метод идентификации запрашиваемый сервером
Но я просто снёс MySQL, поставил MariaDB, оно почему то пыталось использовать базы оставшиеся после MySQL
снёс MariaDB из под графического Synaptic, подтвердив в процессе удаление баз. И cнова поставил MariaDB.
Может тоже кому пригодится...
0
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
20.01.2020, 12:44 10
сама по себе функция из вопроса рабочая, непонятно, как ее вызывают и получают результат. что там в fn.php и header.php (не весь код, а только там, где не работает запрос к бд)
0
1 / 1 / 0
Регистрация: 01.02.2019
Сообщений: 17
08.02.2020, 13:33  [ТС] 11
Так как по недоразумению создала 2 темы по одному вопросу, поэтому повторяю решение. По пути получила ответ, как продлить время скрипта, что и добавила в код. Действительно, необходимо вызывать функцию.

$func='connect_DB';
$func(); для первого варианта, и $func1='connect_DB';
$func1(); для второго.Всем спасибо за помощь.

<?php
set_time_limit(60);//60 секунд

function connect_db(){
$mysqli = new mysqli('localhost', 'root', '', 'double');/// здесь, если не проверяете вывод ошибки, Ваши логин пароль дб 
/*
* Это "официальный" объектно-ориентированный способ сделать это
* однако $connect_error не работал вплоть до версий PHP 5.2.9 и 5.3.0.
*/

if ($mysqli->connect_error) {
die('Connect Error: ' . $mysqli->connect_error.'Первый вариант');}
else
{echo 'Соединение установлено... 1вариант';
}}
$func='connect_DB';
$func();
/* Если нужно быть уверенным в совместимости с версиями до 5.2.9,
* лучше использовать такой код
*/

if (mysqli_connect_error()) {
die('Ошибка подключения (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Соединение установлено... 2 вариант' . $mysqli->host_info . "\n";


$func1='connect_DB';
$func1();
?>
0
08.02.2020, 13:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2020, 13:33
Помогаю со студенческими работами здесь

Подключение к базе данных
Здравствуйте. Часто встречаетя определение&quot; подключение к базе данных&quot;. Я в этом еще плохо...

Подключение к базе данных
Здравствуйте! Проблема с подключением к БД на хостинге 000webhost Такие команды ввожу в локальной...

Подключение к базе данных
Ребятки, мне нужен php скрипт который подключает страницу с базой данных MySQL... В поиске не...

Одно подключение к базе данных
Здравствуйте. Есть такая задача - на странице форма (строка для ввода, кнопка для сабмита)....


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru