2013-04-04 17 views
12

Hala PHP ve MYSQL için yeni ve modern kodlama teknikleri ile her ikisini de öğrenmeye çalışıyorum. Çevrimiçi bulduğum her şey modası geçmiş gibi görünüyor.PHP ile bir veritabanına bağlanmanın en güvenli yollarından bazıları nelerdir?

Herkes benim için bir şey önerebilir mi? Aşağıdaki kodun güncel olup olmadığını merak ediyorum? Gerçekten eskimişse, daha yeni ve daha güvenli yöntemler önerebilir misiniz?

<?php 
    $connection = mysql_connect("localhost", "root", ""); 
    if (!$connection) { 
     die("Oops, error happened: " . mysql_error()); 
    } 
?> 
+1

'mysqli_ * 'fonksiyonları veya (veritabanı bağlantıları nesne yönelimli işlenmesinin) PDO kullanılarak deneyin. pdo üzerinde öğreticiler bir sürü değilse – Voitcus

+0

http://stackoverflow.com/questions/3710511/best-way-to-connect-to-mysql-with-php-securely –

+0

, bu "öğrenmek için değer eski "PHP sözdizimi ve sonra pdo geliyor? Pdo için – user1707535

cevap

9

PDO işlevlerini kullanın. PDO kullanma

Veritabanı Bağlantısı:

$conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password); 
+1

@SumitBijavani +1. –

+0

@AdvaitAmin teşekkürler –

2

bir göz atın Şimdi iki seçeneğimiz var: MySQLi ve PDO.

Eğer bir göz atın kullanmak istediğiniz uygulamayı seçmek için here!

Ve sen mysql_ kullanmamalısınız neden * sonra this post!

+0

Her iki yöntemin de iyi bir karşılaştırması. – Voitcus

0

her şeyden önce bir göz atın bilmek istiyorum:

Evet, hat güncel değil.

mysql_ gibi çok benzer kullanıma sahip olan mysqli_* işlevlerini kullanabilirsiniz.

İkinci olarak, nesne yönelimli programlama hakkında bir şey biliyorsanız, diğer yanıtlarda önerildiği gibi PDO'yu kullanabilirsiniz.

Belirtilmesi gereken son nokta, 'un kullanıcıya hiç bir zaman numaralı kullanıcıya hata mesajı göstermemesidir. Bir şeyin yanlış gittiğini ve BUNUN yanlış gittiğini bilmesi gerekmiyor. Yani asla die() hata mesajı ile. Eğer gerçekte enjeksiyonları geçirmez Sorgularınızı kovmalıyız güvenli yöntemlerle arıyorsanız

3

en güvenli yolu PHP

bir veritabanına bağlanmak için. MySQL uzantısı yakında kullanımdan kaldırılacak, şimdi onun değil safe değil, sadece uzantısı için topluluk daha fazla gelişme düştü durumunda olduğu anlamına gelmez.

Veritabanı sorgularınız için hem PDO hem de mysqli'u deneyebilirsiniz, her ikisi de iyidir.MySQLi sadece MySQL desteklerken,

PDO yaklaşık 12 farklı sürücüleri destekler -

Seçiminiz gerektiği veritabanı seçimine bağlıdır. Mevcut PDO sürücülerinin

Liste

CUBRID (PDO) 
MS SQL Server (PDO) 
Firebird/Interbase (PDO) 
IBM (PDO) 
Informix (PDO) 
MySQL (PDO) 
MS SQL Server (PDO) 
Oracle (PDO) 
ODBC and DB2 (PDO) 
PostgreSQL (PDO) 
SQLite (PDO) 
4D (PDO) 

Kaynağı - pdo-drivers-in-php

API desteği

PDO ve MySQLi hem nesne yönelimli API sunar, ancak MySQLi de sunmaktadır procedural API.

İlgili konular