getMessage ().""."Ocorrido em: ".$data; mail('suco@suco.com', '-6ren">
gpt4 book ai didi

php - 尝试在函数内插入数据库时​​出错

转载 作者:行者123 更新时间:2023-11-29 13:19:04 26 4
gpt4 key购买 nike

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

(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 插入放在外面时,我的数据库可以执行插入,但在这种情况下(在函数内插入)我的数据库没有收到任何数据,并且我收到这些错误:

Undefinied variable ponte_db

call to a member function prepare() on a non-object

如何修复它?

最佳答案

问题是您的函数中没有 PDO 连接,因为您无法在函数内部使用在函数外部声明的变量,因此请更改此:

function DoConfig($param_data){

function DoConfig($ponte_db, $param_data){

并从此更改函数的调用:

DoConfig($param_data);

对此:

DoConfig($ponte_db, $param_data);

关于php - 尝试在函数内插入数据库时​​出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21098928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com