我有以下主要文件:
的index.php:
<?php
include_once("inc/config.php");
$view = $_GET["view"];
include_once "template.php";
?>
的config.php:
define("HOST","localhost");
define("USER","root");
define("PASS","*******");
define("DATABASE","abc");
$mysqli = new mysqli(HOST,USER,PASS,DATABASE);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
查看/ create_account.php:
<?php
include_once(CLASS_PATH."create_account.php");
$acc = new account();
if((isset($_POST)) and ($_REQUEST['mode']=="insert"))
{
$acc->insert_orginfo();
}
?>
类/ create_account.php:
<?php
class account
{
function __construct () {
}
/* ---- insert organization info into table ---- */
function insert_orginfo()
{
extract($_POST);
$query = "insert into `organisationinfo`
(`org_name`, `addr1`, `addr2`, `city`, `state`, `country`, `pin`, `tax_number`, `url`)
values
('$org_name', '$add1', '$add2', '$city', '$state', '$country', '$pincode', '$tax_no', '$url')";
$mysqli->query($query);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
return $mysqli->insert_id;
}
}
?>
index.php
文件包含config.php
和template.php
文件,并使用template.php
文件包含视图文件(例如,view / create_account.php)。使用视图文件我调用类的功能。
现在,问题是没有插入数据。如果我在config.php
中添加class/create_account.php
文件,那么它正在工作。但是这个类文件和视图文件最终包含在index.php
中在index.php
文件配置文件中包含。
表示index.php文件包含template.php文件。 template.php文件包含view / create_account.php文件和view / create_account.php文件包含class / create_account.php
那么这里有什么问题?
提前致谢。
答案 0 :(得分:1)
这是范围问题。 mysqli不是插入函数中的“范围”。
最快的解决方案是让它“全球化”。 http://php.net/manual/en/language.variables.scope.php - 请参阅“全球”关键字部分。
function insert_orginfo()
{
$query = "insert into `organisationinfo` (`org_name`, `addr1`, `addr2`, `city`, `state`, `country`, `pin`, `tax_number`, `url`) values ('$org_name', '$add1', '$add2', '$city', '$state', '$country', '$pincode', '$tax_no', '$url')";
global $mysqli; // bring MySQL into scope.
$mysqli->query($query);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
return $mysqli->insert_id;
答案 1 :(得分:0)
试试这个
/* ---- insert organization info into table ---- */
function insert_orginfo()
{
extract($_POST);
global $mysqli;
$query = "insert into organisationinfo (org_name, addr1, addr2, city, state, country, pin, tax_number, url) values ('$org_name', '$add1', '$add2', '$city', '$state', '$country', '$pincode', '$tax_no', '$url')";
$mysqli->query($query);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
return $mysqli->insert_id;
}