Chapterبەش 9 · Lectureوانە 9.2
Creating a database with phpMyAdminدروستکردنی بنکەدراوە بە phpMyAdmin
Start Apache and MySQL in XAMPP, open phpMyAdmin, and build a database and a table screen by screen: name, collation, columns, primary key, the SQL tab and Browse — plus the users table of Lab 7.
Apache و MySQL لە XAMPP هەڵبکە، phpMyAdmin بکەرەوە و و شاشە بە شاشە دروست بکە: ناو، ، ، ، تابی SQL و Browse — لەگەڵ users ـی تاقیگەی 7.
What you will learnچی فێر دەبیت
- Explain what phpMyAdmin is, where it comes from and what you can do with it.
- Start Apache and MySQL in XAMPP and open phpMyAdmin at the right address and port.
- Create a database with a utf8mb4 collation and a table with typed columns.
- Set a primary key with AUTO_INCREMENT and avoid the mistakes in the course screenshots.
- Run SQL in the SQL tab and check the rows in Browse.
- ڕوون بکەیتەوە چییە، لە کوێوە دێت و چی دەتوانیت پێی بکەیت.
- Apache و MySQL لە XAMPP هەڵبکەیت و phpMyAdmin بە ناونیشان و دروست بکەیتەوە.
- بە utf8mb4 و بە جۆردار دروست بکەیت.
- لەگەڵ AUTO_INCREMENT دابنێیت و خۆت لە هەڵەکانی وێنەکانی وانەکە بپارێزیت.
- لە تابی SQL فەرمانی SQL جێبەجێ بکەیت و لە Browse بپشکنیت.
What phpMyAdmin isphpMyAdmin چییە
In the last lecture you wrote SQL by hand. Most beginners first meet MySQL through : a free web application, written in PHP, that lets you manage MySQL databases in your through a (graphical user interface) — forms, buttons and tables instead of typed commands.
لە وانەی پێشوودا SQLـت بە دەست نووسی. زۆربەی سەرەتاکاران یەکەم جار لە ڕێگەی ـەوە MySQL دەناسن: بەرنامەیەکی وێبیی بەخۆڕاییە، بە PHP نووسراوە و ڕێگەت دەدات MySQL لە بەڕێوە ببەیت لە ڕێگەی — ، دوگمە و لە جیاتی فەرمانی نووسراو.
- Website: www.phpmyadmin.net.
- It is already included in the WAMP and XAMPP packages, so you do not install it separately.
- You open it at
http://localhost/phpmyadmin.
- ماڵپەڕ: www.phpmyadmin.net.
- لە ناو پاکێجەکانی WAMP و XAMPPدا هەیە، بۆیە پێویست ناکات بە جیا دایبمەزرێنیت.
- لە
http://localhost/phpmyadminدەیکەیتەوە.
What you can do with it
چی دەتوانیت پێی بکەیت
phpMyAdmin gives you access to your MySQL database through a GUI. You can easily:
phpMyAdmin لە ڕێگەی دەستت دەگەیەنێتە MySQLـەکەت. بە ئاسانی دەتوانیت:
| Taskکار | Where in phpMyAdminلە کوێی phpMyAdmin |
|---|---|
| Create, edit and drop (delete) databasesدروستکردن، دەستکاریکردن و سڕینەوەی (Drop) | New in the left panel, or the Databases tab: Create; tick a database and press Drop; a database's Operations tab can rename itNew لە پانێڵی چەپ، یان تابی Databases: Create؛ نیشان بکە و Drop دابگرە؛ تابی Operationsـی دەتوانێت ناوەکەی بگۆڕێت |
| Create, edit and delete tablesدروستکردن، دەستکاریکردن و سڕینەوەی | Open a database: Create new table; the Operations tab can rename, empty or delete a table بکەرەوە: Create new table؛ تابی Operations دەتوانێت ناو بگۆڕێت، بەتاڵی بکات یان بیسڕێتەوە |
| Create, edit and delete fields (columns)دروستکردن، دەستکاریکردن و سڕینەوەی | Open a table, Structure tab: Change, Drop, Add column بکەرەوە، تابی Structure: Change، Drop، Add column |
| Enter any MySQL statementنووسینی هەر فەرمانێکی MySQL | The SQL tabتابی SQL |
| View and print the table structureبینین و چاپکردنی پێکهاتەی | Structure tab, then Printتابی Structure، پاشان Print |
| Generate PHP codeدروستکردنی کۆدی PHP | After running a query: the Create PHP code linkدوای جێبەجێکردنی : بەستەری Create PHP code |
| View the data in table formatبینینی زانیارییەکان بە شێوەی | The Browse tabتابی Browse |
phpMyAdmin is like a bank's counter window. You hand your request through the window and a clerk does the work in the back. In the same way, every button you press in phpMyAdmin is turned into SQL — CREATE TABLE, INSERT INTO, SELECT — and sent to MySQL. It is the same SQL you learned; phpMyAdmin is only a window onto it.
phpMyAdmin وەک پەنجەرەی پێشوازیی بانکێک وایە. داواکارییەکەت لە پەنجەرەکەوە دەدەیت و فەرمانبەرێک لە پشتەوە کارەکە دەکات. بە هەمان شێوە، هەر دوگمەیەک لە phpMyAdmin دابگریت دەگۆڕدرێت بۆ SQL — CREATE TABLE، INSERT INTO، SELECT — و دەنێردرێت بۆ MySQL. هەمان ئەو SQLـەیە کە فێری بوویت؛ phpMyAdmin تەنها پەنجەرەیەکە بۆ سەری.
Where the analogy stops workingسنووری ئەم نموونەیە
Your PHP pages do not use phpMyAdmin at all: they talk to MySQL directly. phpMyAdmin is a tool for you, the developer.
لاپەڕە PHPـەکانت هیچ پەیوەندییان بە phpMyAdminـەوە نییە: ڕاستەوخۆ قسە لەگەڵ MySQL دەکەن. phpMyAdmin ئامرازێکە بۆ تۆ، پەرەپێدەر.
The whole path in seven stepsهەموو ڕێگاکە بە حەوت هەنگاو
This is the path from a switched-off computer to a table full of data. The sections below show each step screen by screen.
ئەمە ڕێگای نێوان کۆمپیوتەرێکی کوژاوە و پڕ لە زانیارییە. بەشەکانی خوارەوە هەر هەنگاوێک شاشە بە شاشە پیشان دەدەن.
- Start XAMPPXAMPP هەڵبکە
Turn Apache and MySQL on. Step 1
Apache و MySQL هەڵبکە. هەنگاوی 1
- Open phpMyAdminphpMyAdmin بکەرەوە
Go to
localhost/phpmyadmin. Step 2بڕۆ بۆ
localhost/phpmyadmin. هەنگاوی 2 - Create the databaseبنکەدراوەکە دروست بکە
Give it a name and press Create. Step 3
ناوێکی پێ بدە و Create دابگرە. هەنگاوی 3
- Create a tableخشتەیەک دروست بکە
Choose a name and the number of columns. Step 4
ناو و ژمارەی هەڵبژێرە. هەنگاوی 4
- Set the columnsستوونەکان ڕێک بخە
Name, data type, length, primary key. Step 5
ناو، ، درێژی، . هەنگاوی 5
- Write SQLSQL بنووسە
Use the SQL tab to run your own commands. Step 6
تابی SQL بەکار بهێنە بۆ جێبەجێکردنی فەرمانەکانی خۆت. هەنگاوی 6
- Browse the dataسەیری زانیارییەکان بکە
Check the rows you have saved. Step 7
ئەو بپشکنە کە هەڵتگرتوون. هەنگاوی 7
Step 1: start Apache and MySQLهەنگاوی 1: Apache و MySQL هەڵبکە
Open the XAMPP and press Start next to Apache and MySQL. Both must be running before you open phpMyAdmin: Apache serves the phpMyAdmin pages, and MySQL keeps your data.
XAMPP بکەرەوە و لە تەنیشت Apache و MySQL دوگمەی Start دابگرە. هەردووکیان دەبێت کار بکەن پێش ئەوەی phpMyAdmin بکەیتەوە: Apache لاپەڕەکانی phpMyAdmin دەنێرێت و MySQL زانیارییەکانت هەڵدەگرێت.
Step 2: open phpMyAdminهەنگاوی 2: phpMyAdmin بکەرەوە
Type this address in your browser: localhost/phpmyadmin. means this computer, the one you are sitting at. The address 127.0.0.1 means the same thing, so phpMyAdmin may write "Server: 127.0.0.1".
ئەم ناونیشانە لە بنووسە: localhost/phpmyadmin. واتە ئەم کۆمپیوتەرە، ئەوەی لە بەردەمیدا دانیشتوویت. ناونیشانی 127.0.0.1یش هەمان واتای هەیە، بۆیە لەوانەیە phpMyAdmin بنووسێت «Server: 127.0.0.1».
- Left panel: the New link and the list of databases.
information_schema,mysql,performance_schemaandphpmyadminbelong to the server itself: do not change or delete them.information_schemais the server's catalog, the database that describes all the others (The database describes itself). - Tabs at the top: Databases, SQL, Export, Import and more. The tabs change when you open a database or a table.
- Database server: which server you are connected to (here MariaDB 10.4.25), as which user (
root@localhost), and its (utf8mb4). - Web server: the Apache and PHP versions, and the PHP phpMyAdmin uses, such as
mysqli.
- پانێڵی چەپ: بەستەری New و لیستی .
information_schema،mysql،performance_schemaوphpmyadminهی خودی : دەستکارییان مەکە و مەیانسڕەوە.information_schemaکاتالۆگی ، ئەو هەموو ئەوانی تر وەسف دەکات (بنکەدراوە خۆی وەسف دەکات). - تابەکانی سەرەوە: Databases، SQL، Export، Import و زیاتر. کاتێک یان دەکەیتەوە تابەکان دەگۆڕێن.
- Database server: بە کام پەیوەستیت (لێرە MariaDB 10.4.25)، وەک کام بەکارهێنەر (
root@localhost) و (utf8mb4). - Web server: وەشانی Apache و PHP و ئەو PHP کە phpMyAdmin بەکاریان دەهێنێت، وەک
mysqli.
Step 3: create the databaseهەنگاوی 3: بنکەدراوەکە دروست بکە
- Click New in the left panel (or open the Databases tab).
- Type the database name, for example
mydb. - Choose the collation
utf8mb4_general_ci(orutf8mb4_unicode_ci) so that Kurdish text is stored correctly. - Press Create. The new database appears in the left panel.
- لە پانێڵی چەپ کلیک لە New بکە (یان تابی Databases بکەرەوە).
- ناوی بنووسە، بۆ نموونە
mydb. -
utf8mb4_general_ci(یانutf8mb4_unicode_ci) هەڵبژێرە بۆ ئەوەی دەقی کوردی بە دروستی هەڵبگیرێت. - Create دابگرە. نوێیەکە لە پانێڵی چەپدا دەردەکەوێت.
The rules a database uses to compare and sort text in a , for example whether 'a' and 'A' count as equal. In phpMyAdmin choose a utf8mb4_... collation such as utf8mb4_general_ci (ci = case-insensitive).
ئەو یاسایانەیە کە بۆ بەراوردکردن و ڕیزکردنی دەق لە بەکاری دەهێنێت، بۆ نموونە ئایا 'a' و 'A' وەک یەک دادەنرێن. لە phpMyAdminـدا ڕیزبەندییەکی utf8mb4_... هەڵبژێرە وەک utf8mb4_general_ci (ci = هەستیار نییە بە گەورە و بچووکیی پیت).
Behind the button, phpMyAdmin runs this SQL:
لە پشتی دوگمەکەوە، phpMyAdmin ئەم SQLـە جێبەجێ دەکات:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;A Kurdish (Sorani) lesson: create a MySQL database and a table in XAMPP, with phpMyAdmin and with SQL commands.
وانەیەک بە کوردیی سۆرانی: دروستکردنی و لە ، هەم بە و هەم بە فەرمانەکانی .
Kurdish (Sorani) video: creating a database and a table
ڤیدیۆیەکی کوردیی سۆرانی: دروستکردنی و .
Step 4: create a tableهەنگاوی 4: خشتەیەک دروست بکە
After you create the database, phpMyAdmin opens it. It says No tables found in database and shows the Create new table form. Type the table name and the number of columns it will have, then press Create (older versions: Go). You can add more columns later.
دوای دروستکردنی ، phpMyAdmin دەیکاتەوە. دەنووسێت No tables found in database و Create new table پیشان دەدات. ناوی و ژمارەی بنووسە، پاشان Create دابگرە (لە وەشانە کۆنەکاندا: Go). دواتر دەتوانیت زیاتر زیاد بکەیت.
How to create a function, send values in with arguments, and get a result back with return, with a short practice example.
چۆن دروست بکەیت، بە بنێریتە ناوی و بە return ئەنجامێک لێی وەربگریتەوە، لەگەڵ ڕاهێنانێکی کورت.
Watch 3:34:57–3:39:07: building a users table in phpMyAdmin
لە 3:34:57 تا 3:39:07 سەیر بکە: دروستکردنی لە .
Step 5: set the columnsهەنگاوی 5: ستوونەکان ڕێک بخە
Now phpMyAdmin shows one row of settings for each column. Fill in at least these boxes:
ئێستا phpMyAdmin بۆ هەر ڕیزێک ڕێکخستن پیشان دەدات. لانیکەم ئەم خانانە پڕ بکەرەوە:
| Boxخانە | What to enterچی بنووسیت |
|---|---|
| Name | the column name: small letters, no spaces (id, name)ناوی : پیتی بچووک، بێ بۆشایی (id، name) |
| Type | the : INT, VARCHAR, DATE, ...: INT، VARCHAR، DATE، ... |
| Length/Values | required for VARCHAR (the maximum number of characters, e.g. 100); leave it empty for INTبۆ VARCHAR پێویستە (زۆرترین ژمارەی پیت، بۆ نموونە 100)؛ بۆ INT بەتاڵی بهێڵەوە |
| Default | None unless the column needs a None، مەگەر پێویست بێت |
| Null | tick only if the column may be left emptyتەنها نیشانی بکە ئەگەر بتوانێت بەتاڵ بمێنێتەوە |
| Index | PRIMARY for the id column; UNIQUE for a column like emailPRIMARY بۆ id؛ UNIQUE بۆ وەک email |
| A_I | tick on the id column: (you may need to scroll right to see this box)لەسەر id نیشانی بکە: (لەوانەیە پێویست بێت بۆ لای ڕاست بخلیسکێنیت تا ئەم خانەیە ببینیت) |
Step 5: set the columnsهەنگاوی 5: ستوونەکان ڕێک بخە
Do not forget the primary keyکلیلی سەرەکی لەبیر مەکە
The columns are the questions: name, age, salary. Every row that you save later answers all of them, like one filled-in form.
پرسیارەکانن: ناو، تەمەن، مووچە. هەر کە دواتر هەڵیدەگریت وەڵامی هەموویان دەداتەوە، وەک پڕکراوە.
Explains what a primary key is, why every table needs one, and how it identifies each row.
ڕوون دەکاتەوە چییە، بۆچی هەموو پێویستی پێیەتی و چۆن هەر بە جیا دەناسێنێتەوە.
Watch 26:48–29:58: the PRIMARY KEY chapter only
لە 26:48 تا 29:58 سەیر بکە: تەنها بەشی PRIMARY KEY.
Step 5: set the columnsهەنگاوی 5: ستوونەکان ڕێک بخە
Save the tableخشتەکە هەڵبگرە
Choose the storage engine InnoDB (the default) and press Save. Before saving you can press Preview SQL to see the statement phpMyAdmin will run. With the primary key set correctly it is:
بزوێنەری هەڵگرتنی InnoDB هەڵبژێرە (بنەڕەتییە) و Save دابگرە. پێش هەڵگرتن دەتوانیت Preview SQL دابگریت بۆ بینینی ئەو فەرمانەی phpMyAdmin جێبەجێی دەکات. کاتێک بە دروستی دانرابێت، ئەمەیە:
CREATE TABLE stage_4 (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
age INT NOT NULL,
salary INT NOT NULL,
PRIMARY KEY (id)
) ENGINE = InnoDB;Explain the codeڕوونکردنەوەی کۆدەکە
- Lineدێڕی 2
A_I ticked:
AUTO_INCREMENT.A_I نیشانکراو:
AUTO_INCREMENT.- Lineدێڕی 6
Index = PRIMARY on
id.Index = PRIMARY لەسەر
id.
Step 6: the SQL tabهەنگاوی 6: تابی SQL
Open the table and click the SQL tab. Here you can type any SQL statement and press Go to run it. The buttons SELECT *, SELECT, INSERT, UPDATE, DELETE write a ready-made statement for this table that you only have to complete; Clear empties the box and Format tidies it.
بکەرەوە و کلیک لە تابی SQL بکە. لێرە دەتوانیت هەر فەرمانێکی SQL بنووسیت و Go دابگریت بۆ جێبەجێکردنی. دوگمەکانی SELECT *، SELECT، INSERT، UPDATE، DELETE فەرمانێکی ئامادە بۆ ئەم دەنووسن کە تەنها پێویستە تەواوی بکەیت؛ Clear چوارچێوەکە بەتاڵ دەکات و Format ڕێکی دەخات.
Replace the sample values [value-1] … [value-4] with real data. Leave out id, because AUTO_INCREMENT fills it in, and write numbers without quotes. You can add several rows at once:
نرخە نموونەییەکانی [value-1] … [value-4] بە زانیاریی ڕاستەقینە بگۆڕە. id مەنووسە، چونکە AUTO_INCREMENT پڕی دەکاتەوە و ژمارەکان بەبێ کۆتەیشن بنووسە. دەتوانیت چەند پێکەوە زیاد بکەیت:
INSERT INTO `stage_4` (`name`, `age`, `salary`) VALUES
('Aram', 22, 300),
('Shilan', 25, 450),
('Karwan', 31, 520);Query OK, 3 rows affected
Result checked by running the statements on SQLite in our test sandbox; MySQL returns the same rows.
ئەنجامەکە بە جێبەجێکردنی فەرمانەکان لەسەر SQLite لە ژینگەی تاقیکردنەوەماندا پشکنراوە؛ MySQL هەمان دەگەڕێنێتەوە.
Explain the codeڕوونکردنەوەی کۆدەکە
- Lineدێڕی 1
The backticks (
`) mark table and column names; phpMyAdmin always writes them.باکتیکەکان ناوی و دیاری دەکەن؛ phpMyAdmin هەمیشە دەیاننووسێت.
Step 7: browse the dataهەنگاوی 7: سەیری زانیارییەکان بکە
The Browse tab shows every row in the table. phpMyAdmin runs SELECT * FROM `stage_4` for you and shows the result as a table, 25 rows per page. From here you can edit, copy or delete rows, export them, or print them.
تابی Browse هەموو پیشان دەدات. phpMyAdmin بۆ تۆ SELECT * FROM `stage_4` جێبەجێ دەکات و ئەنجامەکە وەک پیشان دەدات، 25 لە هەر لاپەڕەیەکدا. لێرەوە دەتوانیت دەستکاری بکەیت، کۆپی بکەیت یان بیانسڕیتەوە، هەناردەیان بکەیت، یان چاپیان بکەیت.
SELECT * FROM `stage_4`;+----+--------+-----+--------+ | id | name | age | salary | +----+--------+-----+--------+ | 1 | Aram | 22 | 300 | | 2 | Shilan | 25 | 450 | | 3 | Karwan | 31 | 520 | +----+--------+-----+--------+ 3 rows in set
Result checked by running the statements on SQLite in our test sandbox; MySQL returns the same rows.
ئەنجامەکە بە جێبەجێکردنی فەرمانەکان لەسەر SQLite لە ژینگەی تاقیکردنەوەماندا پشکنراوە؛ MySQL هەمان دەگەڕێنێتەوە.
- Edit inline / Edit change a value; Delete (after ticking rows) removes them — phpMyAdmin asks you first.
- Create PHP code turns the query into a PHP string you can paste into your script, for example
$sql = "SELECT * FROM `stage_4`";. - Print and Export under Query results operations print the rows or save them as a file (SQL, CSV, ...).
- Edit inline / Edit نرخێک دەگۆڕن؛ Delete (دوای نیشانکردنی ) دەیانسڕێتەوە — phpMyAdmin سەرەتا پرسیارت لێ دەکات.
- Create PHP code دەگۆڕێت بۆ زنجیرەیەکی PHP کە دەتوانیت لە دایبنێیت، بۆ نموونە
$sql = "SELECT * FROM `stage_4`";. - Print و Export لە ژێر Query results operations چاپ دەکەن یان وەک فایل هەڵیان دەگرن (SQL، CSV، ...).
Lab 7: the php_mysql database and the users tableتاقیگەی 7: بنکەدراوەی php_mysql و خشتەی users
Lab 7 teaches how to connect your MySQL database to your PHP project: you build a registration page (see Insert and select). First the page needs a database and a table, created in phpMyAdmin on your web server. Follow the same steps:
تاقیگەی 7 فێرت دەکات چۆن MySQLـەکەت بە پرۆژە PHPـەکەتەوە ببەستیتەوە: لاپەڕەیەکی خۆتۆمارکردن دروست دەکەیت (بڕوانە زیادکردن و هەڵبژاردن). سەرەتا لاپەڕەکە پێویستی بە و هەیە، کە لە phpMyAdminـی دروستیان دەکەیت. هەمان هەنگاوەکان بگرە بەر:
- Open phpMyAdmin and click NewphpMyAdmin بکەرەوە و کلیک لە New بکە
The New link is on the left side.
بەستەری New لە لای چەپە.
- Create the database php_mysqlبنکەدراوەی php_mysql دروست بکە
Write the name
php_mysqland click Create.ناوی
php_mysqlبنووسە و کلیک لە Create بکە.Lab 7: creating the database php_mysql (older phpMyAdmin; choose a utf8mb4 collation in the drop-down). The picture is cropped, and other database names were removed for privacy.تاقیگەی 7: دروستکردنی php_mysql (phpMyAdminـی کۆنتر؛ لە لیستەکەدا utf8mb4 هەڵبژێرە). وێنەکە بڕاوە و ناوی تر بۆ پاراستنی زانیاریی کەسی لابراون.Course material - Create the table users with 4 columnsخشتەی users بە 4 ستوون دروست بکە
Write the table name in Name, the number of fields in Number of columns (4), and click Go.
ناوی لە Name بنووسە، ژمارەی لە Number of columns (4) و کلیک لە Go بکە.
Lab 7: type users in Name, keep 4 columns, press Go. (Some database names in the left panel were removed for privacy.)تاقیگەی 7: لە Name بنووسە users، 4 بهێڵەوە، Go دابگرە. (هەندێک ناوی لە پانێڵی چەپ بۆ پاراستنی زانیاریی کەسی لابراون.)Course material - Define the four fields and click Saveچوار ستوونەکە پێناسە بکە و کلیک لە Save بکە
Use the names and types in the table below.
ناو و جۆرەکانی خوارەوە بەکار بهێنە.
Lab 7: the php_mysql database and the users tableتاقیگەی 7: بنکەدراوەی php_mysql و خشتەی users
The four fields, correctedچوار ستوونەکە، ڕاستکراوە
| Field | Typeجۆر | Extraزیادە | Index |
|---|---|---|---|
id | INT | A_I () | PRIMARY |
name | VARCHAR(30) | ||
email | VARCHAR(50) | UNIQUE | |
password | VARCHAR(255) (the lab says 50)VARCHAR(255) (تاقیگەکە دەڵێت 50) |
Lab 7: the php_mysql database and the users tableتاقیگەی 7: بنکەدراوەی php_mysql و خشتەی users
The same setup in SQLهەمان ئامادەکاری بە SQL
The SQL for the whole lab setup, if you prefer the SQL tab:
SQLـی هەموو ئامادەکارییەکەی تاقیگەکە، ئەگەر تابی SQLـت پێ باشترە:
CREATE DATABASE php_mysql CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE php_mysql;
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
UNIQUE (email)
);Explain the codeڕوونکردنەوەی کۆدەکە
- Lineدێڕی 7
Spelled
password, long enough forpassword_hash().بە
passwordنووسراوە و بە ئەندازەی پێویست درێژە بۆpassword_hash().- Lineدێڕی 9
A UNIQUE : the same email cannot be registered twice. A second insert with the same email fails with
#1062 - Duplicate entry '...' for key 'email'.UNIQUE: هەمان ناتوانرێت دوو جار بەکار بهێنرێت. زیادکردنی دووەم بە هەمان شکست دەهێنێت بە
#1062 - Duplicate entry '...' for key 'email'.
Common mistakesهەڵە باوەکان
| Problemکێشە | Causeهۆکار | Fixچارەسەر |
|---|---|---|
The browser says "This site can't be reached" at localhost/phpmyadmin دەڵێت «This site can't be reached» لە localhost/phpmyadmin | Apache is not running, or it uses another portApache کار ناکات، یان پۆرتێکی تر بەکار دەهێنێت | Start Apache; try localhost:81/phpmyadmin if you moved it to port 81Apache هەڵبکە؛ ئەگەر گواستتەوە بۆ پۆرتی 81، localhost:81/phpmyadmin تاقی بکەرەوە |
phpMyAdmin shows #2002 - No connection could be made because the target machine actively refused itphpMyAdmin پیشان دەدات #2002 - No connection could be made because the target machine actively refused it | MySQL is not runningMySQL کار ناکات | Start MySQL in the XAMPP control panelMySQL لە XAMPP هەڵبکە |
INSERT fails: Field 'id' doesn't have a default valueINSERT شکست دەهێنێت: Field 'id' doesn't have a default value | id is not AUTO_INCREMENTid AUTO_INCREMENT نییە | Set Index = PRIMARY and tick A_IIndex = PRIMARY دابنێ و A_I نیشان بکە |
#1054 - Unknown column 'password' | The column is spelled differently (passwrod) بە جۆرێکی تر نووسراوە (passwrod) | Rename the column in Structure → Changeناوی لە Structure → Change بگۆڕە |
| Kurdish text appears as question marksدەقی کوردی وەک نیشانەی پرسیار دەردەکەوێت | The database or table uses a latin1 collation یان latin1 بەکار دەهێنێت | Use a utf8mb4_... collation utf8mb4_... بەکار بهێنە |
| The PHP code cannot find the databaseکۆدی PHP نادۆزێتەوە | A different name in phpMyAdmin and in PHP (My DB vs mydb)ناوی جیاواز لە phpMyAdmin و PHPدا (My DB بەرامبەر mydb) | Use small letters, no spaces, and copy the exact nameپیتی بچووک، بێ بۆشایی و ناوەکە ڕێک کۆپی بکە |
Someone deleted mysql or information_schemaکەسێک mysql یان information_schemaی سڕیەوە | These are the server's own databasesئەمانە خودی | Never touch them; reinstall XAMPP if they are damagedهەرگیز دەستیان لێ مەدە؛ ئەگەر تێکچوون XAMPP دووبارە دابمەزرێنەوە |
Exercisesڕاهێنانەکان
Do the first part of Lab 7 on your own computer: start XAMPP, open phpMyAdmin, create the database php_mysql and the table users with the four fields from the lab (use the corrected column name and length).
بەشی یەکەمی تاقیگەی 7 لەسەر کۆمپیوتەرەکەی خۆت بکە: XAMPP هەڵبکە، phpMyAdmin بکەرەوە، php_mysql و users بە چوار تاقیگەکە دروست بکە (ناو و درێژیی ڕاستکراوەی بەکار بهێنە).
Hintئاماژە
Remember PRIMARY + A_I on id, UNIQUE on email, and the spelling password.
PRIMARY + A_I لەسەر id، UNIQUE لەسەر email و نووسینی password لەبیر مەکە.
Show answerوەڵامەکە پیشان بدە
- Start Apache and MySQL in the XAMPP control panel (both green).
- Open
localhost/phpmyadmin(orlocalhost:81/phpmyadminif Apache uses port 81) and click New. - Name:
php_mysql, collationutf8mb4_general_ci, Create. - Table name
users, 4 columns, Create/Go. - Rows:
idINT, Index PRIMARY, A_I ticked;nameVARCHAR 30;emailVARCHAR 50, Index UNIQUE;passwordVARCHAR 255. Save. - Check the Structure tab: the key icon is next to
idand Extra saysAUTO_INCREMENT.
- لە XAMPP Apache و MySQL هەڵبکە (هەردووکیان سەوز).
localhost/phpmyadminبکەرەوە (یانlocalhost:81/phpmyadminئەگەر Apache پۆرتی 81 بەکار دەهێنێت) و کلیک لە New بکە.- ناو:
php_mysql، :utf8mb4_general_ci، Create. - ناوی
users، 4 ، Create/Go. - ڕیزەکان:
idINT، Index PRIMARY، A_I نیشانکراو؛nameVARCHAR 30؛emailVARCHAR 50، Index UNIQUE؛passwordVARCHAR 255. Save. - تابی Structure بپشکنە: ئایکۆنی کلیل لە تەنیشت
idـە و Extra دەڵێتAUTO_INCREMENT.
The same result in SQL is shown at the end of the Lab 7 section.
هەمان ئەنجام بە SQL لە کۆتایی بەشی تاقیگەی 7 پیشان دراوە.
Create a table in phpMyAdmin and save a form into it: (a) in phpMyAdmin, create a table log with the columns id, name and password; (b) add one test row with the SQL tab and check it in Browse; (c) then build the PHP form that saves what a visitor types.
لە phpMyAdmin دروست بکە و تێدا هەڵبگرە: (أ) لە phpMyAdmin log بە id، name و password دروست بکە؛ (ب) بە تابی SQL تاقیکردنەوە زیاد بکە و لە Browse بیپشکنە؛ (ج) پاشان ئەو PHPـیە دروست بکە کە ئەوەی سەردانکەر دەینووسێت هەڵیدەگرێت.
Show answerوەڵامەکە پیشان بدە
-- (a) in the SQL tab of your database (or with the Create table form)
CREATE TABLE log (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL
);
-- (b) one test row, then open the Browse tab
INSERT INTO log (name, password) VALUES ('test', 'not-a-real-password');(c) The form and the PHP that saves it (with a prepared statement and a hashed password) are built step by step in A form that saves what is typed.
(ج) و ئەو PHPـەی هەڵی دەگرێت (بە و هاشکراو) هەنگاو بە هەنگاو لە فۆرمێک کە ئەوەی دەنووسرێت هەڵدەگرێت دروست دەکرێن.
A classmate built the stage_4 table exactly like the slide's screenshot. Now INSERT INTO stage_4 (name, age, salary) VALUES ('Hana', 24, 400); fails. Explain why and fix the table in phpMyAdmin.
هاوپۆلێک stage_4ی ڕێک وەک وێنەی سلایدەکە دروست کرد. ئێستا INSERT INTO stage_4 (name, age, salary) VALUES ('Hana', 24, 400); شکست دەهێنێت. ڕوونی بکەرەوە بۆچی و لە phpMyAdmin چاک بکە.
Show answerوەڵامەکە پیشان بدە
The id column has no AUTO_INCREMENT and no default value, and the INSERT does not give one, so MySQL (in strict mode) refuses the row: Field 'id' doesn't have a default value. Fix: Structure tab → Change on id → Index PRIMARY, tick A_I → Save. In SQL:
id نە AUTO_INCREMENTی هەیە نە و INSERTـەکەش نرخێکی پێ نادات، بۆیە MySQL (لە strict mode) ڕەت دەکاتەوە: Field 'id' doesn't have a default value. چارەسەر: تابی Structure → Change لەسەر id ← Index PRIMARY، A_I نیشان بکە ← Save. بە SQL:
ALTER TABLE stage_4 MODIFY id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;Summary and reviewپوختە و پێداچوونەوە
- phpMyAdmin is a free web GUI for MySQL/MariaDB, included in XAMPP and WAMP, at
localhost/phpmyadmin. - Seven steps: start XAMPP → open phpMyAdmin → create the database → create a table → set the columns → SQL tab → Browse.
- Give every table a primary key:
id, INT, Index PRIMARY, A_I ticked. - Use small-letter names without spaces and a
utf8mb4collation. - phpMyAdmin only writes SQL for you: every action is a
CREATE,INSERT,SELECT, ... statement.
- phpMyAdmin ئامرازێکی وێبیی بەخۆڕاییە کە بە MySQL/MariaDB بەڕێوە دەبات؛ لە XAMPP و WAMPدا هەیە، لە
localhost/phpmyadmin. - حەوت هەنگاو: XAMPP هەڵبکە ← phpMyAdmin بکەرەوە ← دروست بکە ← دروست بکە ← ڕێک بخە ← تابی SQL → Browse.
- هەموو پێ بدە:
id، INT، Index PRIMARY، A_I نیشانکراو. - ناوی پیتی بچووک بێ بۆشایی و
utf8mb4بەکار بهێنە. - phpMyAdmin تەنها SQL بۆ تۆ دەنووسێت: هەر کارێک فەرمانێکی
CREATE،INSERT،SELECT، ...ـە.
What is phpMyAdmin, and where do you open it?phpMyAdmin چییە و لە کوێ دەیکەیتەوە؟
A free web tool written in PHP for managing MySQL/MariaDB through a graphical interface. It comes with XAMPP/WAMP and opens at http://localhost/phpmyadmin (plus the port number if Apache does not use port 80).
ئامرازێکی وێبیی بەخۆڕاییە، بە PHP نووسراوە، بۆ بەڕێوەبردنی MySQL/MariaDB لە ڕێگەی . لەگەڵ XAMPP/WAMP دێت و لە http://localhost/phpmyadmin دەکرێتەوە (لەگەڵ ژمارەی پۆرت ئەگەر Apache پۆرتی 80 بەکار نەهێنێت).
List the things phpMyAdmin lets you do.ئەو کارانە ڕیز بکە کە phpMyAdmin ڕێگەت دەدات بیانکەیت.
Create, edit and drop databases; create, edit and delete tables and fields; enter any MySQL statement; view and print table structure; generate PHP code; view data in table format.
دروستکردن، دەستکاریکردن و سڕینەوەی ؛ دروستکردن، دەستکاریکردن و سڕینەوەی و ؛ نووسینی هەر فەرمانێکی MySQL؛ بینین و چاپکردنی پێکهاتەی ؛ دروستکردنی کۆدی PHP؛ بینینی زانیارییەکان بە شێوەی .
Why must Apache and MySQL both be running?بۆچی دەبێت Apache و MySQL هەردووکیان کار بکەن؟
Apache serves the phpMyAdmin web pages; MySQL is the database server that phpMyAdmin talks to. Without Apache the page does not open; without MySQL phpMyAdmin shows error #2002.
Apache لاپەڕە وێبییەکانی phpMyAdmin دەنێرێت؛ MySQL ئەو کە phpMyAdmin قسەی لەگەڵ دەکات. بەبێ Apache لاپەڕەکە ناکرێتەوە؛ بەبێ MySQL phpMyAdmin هەڵەی #2002 پیشان دەدات.
What do Index = PRIMARY and A_I do on the id column?Index = PRIMARY و A_I لەسەر ستوونی id چی دەکەن؟
PRIMARY makes id the primary key (unique, never empty). A_I (AUTO_INCREMENT) gives each new row the next number automatically, so INSERT does not need to give an id.
PRIMARY id دەکات بە (دووبارە نابێتەوە، هەرگیز بەتاڵ نییە). A_I (AUTO_INCREMENT) خۆکارانە ژمارەی دواتر دەدات بە هەر نوێ، بۆیە INSERT پێویست ناکات id بدات.
What is the difference between the SQL tab and the Browse tab?جیاوازیی نێوان تابی SQL و تابی Browse چییە؟
The SQL tab runs any statement you type. Browse runs SELECT * on the table and shows the rows, with links to edit, delete, export and print them.
تابی SQL هەر فەرمانێک بنووسیت جێبەجێی دەکات. Browse لەسەر SELECT * جێبەجێ دەکات و پیشان دەدات، لەگەڵ بەستەر بۆ دەستکاریکردن، سڕینەوە، هەناردەکردن و چاپکردنیان.
Videoڤیدیۆ
Watch a videoسەیری ڤیدیۆیەک بکە
A video that viewers liked a lot and praised in their comments, chosen for this lesson.ڤیدیۆیەک کە بینەران زۆریان پێ خۆش بووە و لە کۆمێنتەکانیاندا ستایشیان کردووە، بۆ ئەم وانەیە هەڵبژێردراوە.
Shows how to start XAMPP, open phpMyAdmin, create a new database and understand what tables are, step by step.
هەنگاو بە هەنگاو پیشان دەدات چۆن کارپێدەکەیت، دەکەیتەوە، نوێ دروست دەکەیت و تێدەگەیت چییە.
Whole video: XAMPP, phpMyAdmin, a new database, tables and first SQL
هەموو ڤیدیۆکە: ، ، نوێ، و یەکەم هەنگاوەکانی .
Lesson complete!وانەکە تەواو بوو!
Well done. Review the key terms, then go on to the next lesson.دەستخۆش. سەیرێکی زاراوە سەرەکییەکان بکەرەوە، پاشان بڕۆ بۆ وانەی داهاتوو.
Key termsزاراوە سەرەکییەکان
Better SELECT Queries: Conditions, Ranges, Lists, Patterns and NULLباشترکردنی فەرمانی SELECT: مەرجەکان، ماوەکان، لیست، شێوازی دەق و NULL
Related lecturesوانە پەیوەندیدارەکان
References and further readingسەرچاوەکان و خوێندنەوەی زیاتر
This lecture is a first edition. The Kurdish text and terminology are waiting for review by Kurdish IT teachers.ئەم وانەیە چاپی یەکەمە. دەقە کوردییەکە و زاراوەکانی چاوەڕێی پێداچوونەوەی مامۆستایانی کوردی بواری IT ن.