尝试在函数中插入数据库时​​出错

时间:2014-01-13 18:45:40

标签: php mysql pdo

我有这个代码,谁连接到数据库

(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('suco@suco.com', '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插入外部时,我的数据库可以执行插入,但在这种情况下(在函数内插入)我的数据库不接收任何数据,我得到这些错误:

  

未确定的变量ponte_db

     

在非对象上调用成员函数prepare()

我该如何解决?

1 个答案:

答案 0 :(得分:1)

问题是你的函数中没有PDO连接,因为你不能使用在函数内部函数外声明的变量,所以改变它:

function DoConfig($param_data){

function DoConfig($ponte_db, $param_data){

并从此处更改函数的调用:

DoConfig($param_data);

到此:

DoConfig($ponte_db, $param_data);