Adatbázis
PHP
MySql
AMP! (Apache + MySql + PHP) XAMPP, LAMP, MAMP, WAMP et cetera…
Adatbázis - nem html? Egyszerű blog
{
Bejegyzés
Olvasó
Komment
MySql - miért pont az? “The world's most popular open source database”
Nem a legjobb a piacon. De nem rossz, sőt… Ingyenes! A legelterjedtebb… Nagyon-nagyon sok elérhető forrás!
Create Table kis_betuvel_irjuk_a_tablak_nevet
Ahogy újabb és újabb rekordokat szúrunk be, újabb és újabb id-kat kapnak. 1-től a végtelenbe és tovább!
CREATE TABLE `blog_post` (! `id` int(11) unsigned NOT NULL AUTO_INCREMENT,! `title` varchar(255) NOT NULL DEFAULT '',! `body` text NOT NULL,! ! PRIMARY KEY (`id`)! ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
PHP csatoló: mysql_
DEPRECATED! This extension is deprecated as of PHP 5.5.0, and will be removed in the future.
PHP csatoló: mysql_ mysql_affected_rows mysql_client_encoding mysql_close mysql_connect mysql_create_db mysql_data_seek mysql_db_name mysql_db_query mysql_drop_db mysql_errno mysql_error mysql_escape_string
mysql_fetch_array mysql_fetch_assoc mysql_fetch_field mysql_fetch_lengths mysql_fetch_object mysql_fetch_row mysql_field_flags mysql_field_len mysql_field_name mysql_field_seek mysql_field_table mysql_field_type
mysql_free_result mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql_insert_id mysql_list_dbs mysql_list_fields mysql_list_processes mysql_list_tables mysql_num_fields
mysql_num_rows mysql_pconnect mysql_ping mysql_query mysql_real_escape_string mysql_result mysql_select_db mysql_set_charset mysql_stat mysql_tablename mysql_thread_id mysql_unbuffered_query
48 db függvényen keresztül minden funkció elérhető Kapcsolat kezelés: 3db Hibakezelés: 2db Munka: 8db
MySql kapcsolat $server = ‘127.0.0.1’;! $user = ‘root’;! $password = ‘krokodil9’;! $conn = mysql_connect($server, $user, $password); Kapcsolódunk az adatbázis szerverhez
Az adatbázis kiválasztása, amivel dolgozni szeretnénk.
$database = ‘my_blog’;! mysql_select_db(!$database, $conn); … working really hard …!
mysql_close($conn);
A munka végeztével lezárjuk a kapcsolatot a szerverrel.
MySql műveletek (insert) SQL művelet eredménye
SQL művelet végrehajtása SQL
$result = mysql_query(“! ! INSERT INTO blog_post (title, body)! ! VALUES (‘$title’, ‘$body’)”); if($result === false){! Ha az eredmény FALSE akkor ! echo mysql_errno().“\n"! hiba történt! amit tehetünk, hogy ! echo mysql_error().“\n";! A legrosszabb, kiírjuk. Mi itt azt tesszük. } else{! ! $id = mysql_insert_id();! ! echo $id.’-vel sort szúrtunk be’;! }
$result =
mysql_query($sql,
[$conn])
Mindig FALSE, ha hiba történt. DELETE, INSERT, UPDATE, REPLACE stb…
TRUE, ha hiba nélkül lefutott az sql. SELECT, SHOW, DESCRIBE, EXPLAIN, stb…
$resource, amivel további műveleteket végezhetünk.
MySql műveletek (select) $result = mysql_query(“! ! SELECT * ! ! FROM blog_post! ! LIMIT 0, 10! ”);! !
echo mysql_num_rows().’db postot találtunk
’;! !
while($row = mysql_fetch_row($result)){! ! echo $row[1].’ című cikket találtam
’;! }! !
mysql_free_result();
MySql műveletek (select) $result = mysql_query(“! ! SELECT * ! ! FROM blog_post! ! LIMIT 0, 10! ”);! !
echo mysql_num_rows().’db postot találtunk
’;! !
while($row = mysql_fetch_assoc($result)){! ! echo $row[‘title’].’ című cikket találtam
’;! }! !
mysql_free_result();
MySql műveletek (delete) $result = mysql_query(“! ! DELETE FROM blog_post! ! WHERE title LIKE ‘%facebook%’! ”);! !
echo mysql_affected_rows().’db cikket töröltünk
’;!
MySql műveletek (update) $title = mysql_real_escape_string($title);! $body = mysql_real_escape_string($body);! $id = mysql_real_escape_string($id); $result = mysql_query(“! ! UPDATE blog_post! ! SET !title = ‘$title’,! ! ! ! body = ‘$body’! ! WHERE id = ‘$id’! ”);
Biztonság? // azt várjuk az $id-től, hogy egy szám lesz benne! // helyette ez jön: 12 OR 1=1 $result = mysql_query(“! ! DELETE blog_post! ! WHERE id = $id! ”);! // DELETE blog_post WHERE id = 12 OR 1=1 !
$result = mysql_query(“! ! DELETE blog_post! ! WHERE id = ‘$id’! ”);! // DELETE blog_post WHERE id = ’12 OR 1=1’
Biztonság? // azt várjuk az $id-től, hogy egy szám lesz benne! // helyette ez jön: 12’ OR ‘1’=‘1 $result = mysql_query(“! ! DELETE blog_post! ! WHERE id = ‘$id’! ”);! // DELETE blog_post WHERE id = ’12’ OR ‘1’=‘1’ $id = mysql_real_escape_string($id);! $result = mysql_query(“! ! DELETE blog_post! ! WHERE id = ‘$id’! ”);! // DELETE blog_post WHERE id = ’12\’ OR \’1\’=\’1’
Semmiben sem bízhatunk, de a legnagyobb ellenségünk a felhasználó!