Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php OOP-PDO;全局变量的问题?_Php_Mysql_Oop_Pdo - Fatal编程技术网

Php OOP-PDO;全局变量的问题?

Php OOP-PDO;全局变量的问题?,php,mysql,oop,pdo,Php,Mysql,Oop,Pdo,我对PDO和OOP很陌生。之后,我尝试执行下面给出的代码,得到以下输出:-致命错误:在第20行的C:\xampp\htdocs\Mine\OOPs\pdo progs\function.php中对非对象调用成员函数query()。谢谢 <?php class main { public function __construct() { $obj=new PDO("mysql:host=localhost;dbname=a

我对PDO和OOP很陌生。之后,我尝试执行下面给出的代码,得到以下输出:-致命错误:在第20行的C:\xampp\htdocs\Mine\OOPs\pdo progs\function.php中对非对象调用成员函数query()。谢谢

<?php

class main
       {

         public function __construct()
       { 

        $obj=new PDO("mysql:host=localhost;dbname=arnob-pdo",'root','');    

       }    

        public function reg()   
    {
        global $obj;
        $name=$_POST['name'];
        $email=$_POST['email'];
        $pass=$_POST['pass'];
                $sql=$obj->query("insert into memo set                                                            
                name='".$name."',email='".$email."',pass='".$pass."'");

        if($sql)
            {
             ?>

             <script type="text/javascript"> 
             alert("WELCOME <?php echo $_POST['name']; ?> to Memo"); 
             </script>
             <?php  
            }
             else echo 'Registration Failure';
       }        
        }
       $main=new main;

       ?>


        index.php:
        <?php require('function.php'); 

        if (isset($_POST['submit']))
         {  

      $exe=$main->reg();
      echo $exe; 
         } 

         ?>

类和变量的基本说明见文档:

正如其他用户所说,使用良好的代码格式和清晰的变量描述($obj不是描述性的)



错误出现在第20行的C:\xampp\htdocs\Mine\OOPs\pdo progs\function.php上。因此,也可以发布function.php中的代码进行评估。请修复您的代码格式。目前无法读取。实际上应该避免使用
global
变量。您可能会从解决方案中受益。感谢Guyzz的快速反馈。。实际上,这段代码没有将函数包装到类中,它是有效的。所以,我想问一问!是的,我只是这个概念的初学者,我需要深入挖掘。你的代码片段实际上会违反OCP。。另外,自从PHP5.0以来,
var
的使用一直受到反对,这实际上也不起作用
<?php
    class main {
        private $db;

        public function __construct(){
            $this->db = new PDO( ... );
        }

        public function reg(){
            ...
            $sql = $this->db->query( ... );
            ...
        }
    }
?>