2013-05-21 37 views
0

我用下面的PHP查詢我的CMS系統安裝表:如何文件的內容添加到MySQL查詢PHP內

$q=new mysql(" 
INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES 
(0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', '[email protected]'); 
"); 

但是代替電子郵件[email protected]我會的喜歡用存儲在內部/settings/contact.inc.php文件,該文件是電子郵件:

<?php  
$emailaddress='[email protected]'; 
    ?> 
+1

問題是? – BlitZ

+1

在一個數據庫中存儲文件是一個壞主意,將其存儲在文件系統中,並在分區中存儲路徑 – zerkms

+0

是的,這就是我想要做的:) – Spacedust

回答

2

你可以簡單地使用它像,

$query = "INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) 
      VALUES (0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', '$emailaddress')"; 

備註:您需要包含/settings/contact.inc.php文件。

做閱讀:sql injection attacks!請改爲了解prepared statements,並使用PDOMySQLi - this article將幫助您決定哪個。

+0

是的評論請。 – Rikesh

+3

我看到這篇文章沒有錯。 @Rikesh是正確的,你需要包含這個文件並在我查詢+1之前使用分配的變量。 – Robert

+0

@RobertPodwika - 謝謝。總是感覺不好,沒有任何評論下來投票:p – Rikesh

3

簡單的包含文件,並使用變量:

require_once("/settings/contact.inc.php"); 

$q=new mysql(" 
INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES 
(0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', '$emailaddress'); 
"); 

當心SQL注入

的在你知道$emailaddress,來自你可以信任的內容這種情況下。在其他情況下,您需要保護您的代碼免受SQL injection的影響。

因此,我建議您使用prepared statements,使用mysqli函數。

然後,您可以問號或命名佔位符代替查詢中的變量:

"INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES (0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', ?);" 

,並使用mysqli_stmt_bind_param功能綁定$emailaddress

1

您可以包含/settings/contact.inc.php,然後您可以使用$ emailaddress變量。

1
include('/settings/contact.inc.php'); 
$q=new mysql("INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES (0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', '$emailaddress');"); 
1

您可以包含該文件,然後您可以使用下面的所有變量。

<?php include_once('/settings/contact.inc.php'); ?> 
0

所有的答案是偉大的,所以我投票了所有的人。除此之外,每個人都建議你可以使用fopenfread。我知道這種方式很簡單,但我的方式只是另一種方式。

$filePath = './settings/contact.inc.php'; 

$handle = fopen($filePath,"r+"); 
$content = fread($handle,filesize($filePath)); 
$array = explode(" ",$content); 
foreach($array as $word) 
{ 
    if(filter_var($word, FILTER_VALIDATE_EMAIL)) 
    { 
     $emailaddress = $word; 
    } 
} 
fclose($handle); 

$q=new mysql("INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) 
VALUES 
(0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', '$emailaddress');"); 
+1

如果你認真對待這個答案,我寧願正則表達式 –

+0

@WouterHuysentruit謝謝。代碼編輯:) –

相關問題