2016-06-23 3 views
1

Делаю поисковую систему для веб-сайта, и я никогда не использовал PHP раньше, и я пытался подключить веб-страницы к базе данных MySQL, используя этот код:Как подключить php к базе данных mysql?

$dbhost = 'hosthere'; 
    $dbuser = 'usernamehere'; 
    $dbpass = 'passwordhere'; 
    $conn = mysql_connect($dbhost, $dbuser, $dbpass); 
    if(! $conn) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
    echo 'Connected successfully'; 

, но я также читал не используйте функции mysql_ *, поскольку они скоро не будут использоваться, но я не видел этого нигде.

Мой старый код подключаемое:

define('DB_SERVER', 'serverhere'); 
    define('DB_SERVER_USERNAME', 'usernamehere'); 
    define('DB_SERVER_PASSWORD', 'passwordhere'); 
    define('DB_DATABASE', 'databasehere'); 
    define('STORE_DB_TRANSACTIONS', 0); 
    define('DEBUG', 0); 

    db_connect() or die('Unable to connect to database server!'); 

Должен ли я просто придерживаться этого или использовать код в верхней части?

+0

Это относится к mysql. Если вам нужна потенциальная независимость от поставщика базы данных, вы можете захотеть взглянуть на такие инструменты, как Doctrine. Кроме того, поскольку вы строите поиск, вы можете захотеть посмотреть в solr или elasticsearch, поскольку эти инструменты созданы для поиска. – k0pernikus

+0

http://code.tutsplus.com/tutorials/php-database-access-are-you-doing-it-correctly--net-25338 –

ответ

1

здесь вы идете, используя PDO.

define("SQLHOST", "127.0.0.1"); 
define("SQLUSER", "login"); 
define("SQLPASS", "password"); 
define("SQLSGBD", "database"); 

$conn = new PDO('mysql:host=' . SQLHOST . ';dbname=' . SQLSGBD . ';charset=UTF8', SQLUSER, SQLPASS); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$sql1 = 'SELECT * FROM table where field1=?'; 
$stmt1 = $conn->prepare($sql1); 

$field1="test"; 
$stmt1->bindParam(1, $field1, PDO::PARAM_STR); 

try { 
    $stmt1->execute(); 
    $result = $stmt1->fetchAll(PDO::FETCH_ASSOC); 
} catch (PDOException $e) { 
    if ($showError === true) { 
     var_dump("error query 1:" . __LINE__ . "-------" . __FUNCTION__ . "-------" . $e->getMessage()); 
     exit; 
    } 
} 
+0

Вам не следует использовать define ... Это плохой стиль. – GreatSUN

0

Это объясняется в http://php.net/manual/en/function.mysql-connect.php

Вы должны использовать один из расширений: MySQLi или Pdo_Mysql

С MySQLi вы в основном добавить двутавровой к новой версии кода (не используйте старый код) дополнительную информацию можно найти здесь: http://php.net/manual/en/function.mysqli-connect.php. В противном случае, пожалуйста, смотрите http://php.net/manual/en/pdo.construct.php

Надеюсь, это поможет.

Смежные вопросы