我有这个代码,谁连接到数据库
(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()
我该如何解决?
答案 0 :(得分:1)
问题是你的函数中没有PDO连接,因为你不能使用在函数内部函数外声明的变量,所以改变它:
function DoConfig($param_data){
到
function DoConfig($ponte_db, $param_data){
并从此处更改函数的调用:
DoConfig($param_data);
到此:
DoConfig($ponte_db, $param_data);