2014-01-13 38 views
0

我有這樣的代碼,誰連入數據庫錯誤試圖在其他項目中的功能

(CONFIG.PHP)

<?php 
try{ 
$ponte_db = new PDO ("mysql:host=localhost;dbname=helloius", "asasa", "6233"); 
}catch (PDOException $e) { 
    $data = date("d/m/Y H:i:s "); 
    $mensagem = "Erro no banco de dados:<br>".$e->getMessage()."<br>"."Ocorrido em: ".$data; 
    mail('[email protected]', 'Erro Banco de Dados', $mensagem); 
    echo '<script>alert("Desculpe,mas os nossos servidores estao sendo reparados neste exato momento,tente em uma outra hora!");</script>'; 
} 
?> 

內插入數據庫時​​嘛(誰做插入)我有這樣的代碼

<?php 
include ('config.php'); 

function DoConfig($param_data){ 
    $info_config = $ponte_db->prepare("INSERT INTO config (r1) VALUES (:a)"); 
    $info_config->bindValue(":a", $paran_data); 
    $info_config->execute(); 
    }  

if($_SERVER['REQUEST_METHOD'] == 'POST'){ 

if(isset($_POST['data_id']) && $_POST['data_id'] != NULL){ 

    $data = $_POST['data_id']; 
    DoConfig($data); 


} 

} 

?> 

所以,當我刪除功能DoConfig,並把PDO插入外,我的數據庫可以做一個插入,但在這種情況下,(插入函數中)我的數據庫沒有收到任何數據,一個d我得到這些錯誤:

Undefinied變量ponte_db

調用一個成員函數準備()非對象

我怎樣才能解決這個問題呢?

+0

旁註:你有一個錯字''在$ info_config-> bindValue $ paran_data'( 「:一個」 $ paran_data);'這應該是'$ param_data'按'函數DoConfig($ param_data閱讀)' –

+1

@ Fred-ii-,很好的發現。 –

+1

是的,但是我接下來確信它只是一個錯字,因此OP的問題'Undefinied variable ponte_db' @ShankarDamodaran中的「輸入」錯誤消息應該讀作'Undefined' ;-) –

回答

1

的問題是存在的功能沒有PDO連接,因爲你不能使用的函數內部函數外聲明的變量,所以改變這種:

function DoConfig($param_data){ 

function DoConfig($ponte_db, $param_data){ 

和改變功能的,從這個電話:

DoConfig($param_data); 

這樣:

DoConfig($ponte_db, $param_data); 
相關問題