Найти тему
Мухамат Газизов

Как подключить MySql базу данных к своему сайту на XAMPP

Оглавление

Вы научились делать сайты , оформлять их , изучили javascript , php ... Установили на свой компьютер XAMPP . Создаёте и проверяете сайты на локальном сервере . Хотите научиться подключить базу данных MySql к своему сайту . В интернете много об этом написано , но в основном это фрагменты программ , отдельные строки . Начинающему трудно в этом разобраться .

Вот я нашёл хороший сайт Website-create.ru Анны Котельниковой . Есть там замечательные статьи : начинаем с этой Создание баз данных , затем Добавление информации в базу данных, затем Вывод информации на веб страницу , затем Изменение информации в базе данных .

1) https://website-create.ru/sozdanie-baz-dannih/

2) https://website-create.ru/vstavka-dannih-mysql/

3) https://website-create.ru/vivod-iz-bazi-mysql/

4) https://website-create.ru/update-mysql/

Там всё чётко и ясно объясняется . Понятно даже новичку . Приводятся и готовые программы . Скопировать вставить себе и ... .

И XAMPP выдаёт ошибку типа :"Fatal error: Uncaught Error: Call to undefined function mysql_connect..." . Или такого типа : Warning: mysqli expects 2 parameters ,1 given in ... или mysqli_select_db expects parameter 1 to be mysqli, string given in ...

Дело в том , что программы написаны на mysql , а xampp требует mysqli .

По крайней мере у меня так ( версия xampp 7.3.2 ; версия MySql 10.1.38-MariaDB ).

Если кому надо я вот разобрался в этом и могу предложить работающие коды .

connect.php :

<?php
$con = mysqli_connect("localhost","anna","12345","new_db");

// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();

}
?>

form.php:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Untitled Document</title>
    </head>
    <body>
    <?php
    require 'connect.php';
    $first_name = trim($_REQUEST['first_name']);
    $last_name = trim($_REQUEST['last_name']);
    $email = trim($_REQUEST['email']);
    $facebook = trim($_REQUEST['facebook']);

    $position = true;
    if(preg_match("/^http:\/\/www.facebook.com\//", $facebook))
    {$position = false;}
    else if(preg_match("/^www.facebook.com\//", $facebook))
    {$position = false;
    $facebook = "http://" . $facebook;}
    else if($position)
    {$facebook = "http://www.facebook.com/" . $facebook;}


    $insert_sql = "INSERT INTO users (first_name, last_name, email, facebook)" .
    "VALUES('{$first_name}', '{$last_name}', '{$email}', '{$facebook}');";
    mysqli_query($con,$insert_sql);
    echo "<p>Новая запись вставлена в базу!</p>";
    ?>
    </body>
    </html>

select_user.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Selected User</title>
</head>

<body>

<?php
require 'scripts/connect.php';
$first_name = trim($_REQUEST['first_name']);
$last_name = trim($_REQUEST['last_name']);

$sql_select = "SELECT * FROM users WHERE first_name='$first_name' && last_name='$last_name'";
$result = mysqli_query($con,$sql_select);
$row = mysqli_fetch_array($result);

if($row)
{


printf("<p>Пользователь: " .$row['first_name'] . " " .$row['last_name'] ."</p>
<p><i>Контактные данные </i>:</p><p>E-mail: " .$row['email'] . "</p><p>Facebook: " .$row['facebook'] . "</p>-------------------------------------------------------<br/>"
);
}
else{echo ("Пользователя с таким именем в базе нет<br/><br/>");}
?>


<a href="search_user.html">Вернуться к поиску</a><br/><br/>
<a href="info_form.html">Добавить пользователя</a></br>
<a href="select_change.php">Редактировать запись базы данных</a><br/>
</body>
</html>

edit.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Вносим изменеиния</title>
</head>
<body>
<?php
require 'scripts/connect.php';
$id = $_REQUEST['user'];
$select_sql = "SELECT * FROM users WHERE id= $id";
$result = mysqli_query($con,$select_sql);
$row = mysqli_fetch_array($result);
printf("<form action='scripts/update.php' method='post' name='forma'>
<fieldset>
<input type='hidden' name='id' value='%s'><br/>
<label for='first_name'>Имя:</label><br/>
<input type='text' name='first_name' size='30' value='%s'><br/>
<label for='last_name'>Фамилия:</label><br/>
<input type='text' name='last_name' size='30' value='%s'><br/>
<label for='email'>Email:</label><br/>
<input type='text' name='email' size='30' value='%s'><br/>
<label for='facebook'>Facebook</label><br/>
<input name='facebook' type='text' size='30' value='%s'>
</fieldset>
<br/>
<fieldset>
<input id='submit' type='submit' value='Редактировать запись'><br/>
</fieldset>
</form>",$row['id'], $row['first_name'], $row['last_name'], $row['email'], $row['facebook']);
?>

<a href="info_form.html">Добавить пользователя</a><br/><br/>
<a href="search_user.html">Вернуться к поиску</a><br/><br/>
<a href="select_change.php">Вернуться к выбору записей для редактирования</a><br/><br/>
</body>
</html>

all-users.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset=utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Selected User</title>
</head>
<body>
<?php
require 'scripts/connect.php';
$sql_select = "SELECT * FROM users";
$result = mysqli_query($con,$sql_select);
$row = mysqli_fetch_array($result);
do
{
printf("<p>Пользователь: " .$row['first_name'] . " " .$row['last_name'] ."</p>
<p><i>Контактные данные</i></p><p>E-mail: " .$row['email'] . "</p><p>Facebook: " .$row['facebook'] . "</p>---------<br/>"
);
}
while($row = mysqli_fetch_array($result));
?>
<a href="search_user.html">Вернуться к поиску</a><br/><br/>
<a href="info_form.html">Добавить пользователя</a>
</body>
</html>

select_change.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css" type="text/css">
<title>Выбор пользователя для редактирования.</title>
</head>
<body>
<form action="edit.php" method="post">
<fieldset>
<?php
require 'scripts/connect.php';
$select_sql = "SELECT id, first_name, last_name FROM users";
$result = mysqli_query($con,$select_sql);
$row = mysqli_fetch_array($result);
do
{
printf("<input type='radio' name='user' value='%s'>%s %s<br/><br/>", $row['id'], $row['first_name'], $row['last_name']);
}
while($row = mysqli_fetch_array($result))
?>
</fieldset>
<fieldset>
<input type="submit" value="Выбрать элемент">
</fieldset>
</form>
<a href="info_form.html">Добавить пользователя</a><br/><br/>
<a href="search_user.html">Вернуться к поиску</a><br/><br/>
</body>
</html>

Здесь только коды которые работают на xampp .

При работе с базами данных MySql возникает проблема с кодировками ,

вместо кириллицы появляются какие то непонятные символы , как говорят кракозябры . Я это исправил таким образом : во первых везде в программах проставил кодировку utf-8 , когда создавал базу данных и таблицы -utf8_general_ci (как все рекомендуют). Но на этом ещё не всё , при просмотре таблиц через phpMyAdmin чтобы кириллица правильно отображалась включил строку на config .my.ini (убрал символ решётки ) как на этих скриншотах

На панели управления xampp нажимаем кнопку Config затем my.ini , находим раздел UTF 8 settings и убираем решётки как на скриншоте ниже .

мне кажется другие одинарные тоже можно убрать , но пока не проверял .

-2

Продолжение можете найти здесь https://zen.me/1tyZIu .

Удачи !