2013-03-28 103 views
0

我有這個文件稱爲db.php中,這使得與數據庫的連接。插入一個PHP常量轉換成字符串

<?php 
    define("DB_HOST", "localhost"); 
    define("DB_NAME", "login"); 
    define("DB_USER", "admin"); 
    define("DB_PASS", "123"); 
    mysql_connect(DB_HOST, DB_USER, DB_PASS) OR die("Falha na ligação."); 
?> 

我想要做的是使用DB_NAME在另一個文件中定義,這樣我只需要改變它在db.php中的情況下,我不得不改變數據庫名。

這裏的,我希望它被應用。查閱全文的例子。

$qp = "UPDATE login.users SET palpiteatual = '".$_POST['atextfield']."' WHERE user_name = '".$_SESSION['user_name']."'"; 

而不是有login.users,我嘗試了以下方法,但沒有成功。

$qp = "UPDATE '"DB_NAME"'.users SET palpiteatual = '".$_POST['atextfield']."' WHERE user_name = '".$_SESSION['user_name']."'"; 
$qp = "UPDATE "+DB_NAME+".users SET palpiteatual = '".$_POST['atextfield']."' WHERE user_name = '".$_SESSION['user_name']."'"; 

不知道是如何使用這種方式的確切語法。在此先感謝

+0

做了什麼語法錯誤,你越來越? – 2013-03-28 08:45:11

+0

當你連接到'登錄'數據庫時,爲什麼你仍然需要指定數據庫名稱? – 2013-03-28 08:46:05

+0

既然你仍在使用(已廢棄)(http://www.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated)mysql_功能,請至少使用[mysql_real_escape_string( http://www.php.net/manual/en/function.mysql-real-escape-string.php)來避免通過表單輸入進行SQL注入。或者更好的是,升級到[PDO](http://www.php.net/manual/en/ref.pdo-mysql.php),並準備和執行的語句。 – Oldskool 2013-03-28 08:58:14

回答

4
$qp = "UPDATE ".DB_NAME.".users SET palpiteatual..."; 

需要注意的是,如果你沒有多個連接和多個數據庫做,沒有必要使用DB_NAME