0

我有一个准备好的语句,它将向数据库中插入一个条目。该语句工作正常并插入条目。我将语句包装在一个函数中,调用该函数,它不再插入数据库。从函数调用这些语句有问题吗?旁注......我的最终目标是把这个函数作为一个方法放在一个类中。我正在尝试这样做,并开始进行故障排除,并确定错误是在放入功能时开始的。我的下一步是将其转移到班级中。我的代码中是否还有其他内容可以防止这种情况发生?

<?php

include 'main_connection.php';

function add() {
    $stmt = $mysqli->prepare("INSERT INTO user (name) VALUES (?)");
    $stmt->bind_param('s',$name);
    $name = "test";
    $stmt->execute();
    $stmt->close();

}

add();  

?>
4

2 回答 2

3

您有一个可变范围问题。具体来说,add()不知道变量$mysqli$name

有很多方法可以解决这个问题。一个快速的建议是将参数传递给add()

function add($mysqli, $name) {
  // your code
}

add($mysqli, $name);

或者使用全局范围:

function add() {
  global $mysqli, $name;
  // your code
}

免责声明:我也不提倡。参考以下 - PHP 全局函数

于 2012-11-14T20:58:23.753 回答
1
function add($mysqli, $name) {
    $stmt = $mysqli->prepare("INSERT INTO user (name) VALUES (?)");
    $stmt->bind_param('s',$name);
    $name = "test";
    $stmt->execute();
    $stmt->close();

}

add($mysqli, $name); 
于 2012-11-14T21:00:00.927 回答