php-致命错误:未接收错误:在null in上致电成员函数query()



我找不到解决方案,花费数小时的故障排除。挫败感稳步成长。

问题:我尝试将网页传输到需要MySQL接口的OOP方法的新提供商之后,以重置所有SQL命令行。这很好。但是有一个我无法工作的一部分。所谓的php-file movie.php看起来像:

<?php
    include 'scripts/init.php';
    ...   
    $cameraString = AssignPerson( $movieID, 'camera' );
 ?>

init.php的重要位是:

<?php
   session_start();
   include 'scripts/connect2SQL.php';   
   include 'scripts/logInOut.php';  
   include 'scripts/classes_functions.php';
?>

connect2sql.php读

<?php
$connection2MySQL = mysqli_connect(  "localhost" , "***" , "***", "***");
mysqli_query( $connection2MySQL , "SET CHARACTER SET 'utf8'" );
mysqli_query($connection2MySQL , "SET SESSION collation_connection ='utf8_unicode_ci'" );
?>

因此,变量$ connection2mysql表示与数据库的OOP连接。

功能分配($ Movieid,'Camera');在Movie.php中,在类class_functions.php中定义了。在这里,基本片段是

function AssignPerson( $objectID, $type = 'actor' ) {
   $memoryString = '';          
   // THAT FOLLOWING LINE IS NOT WORKING :::    
   $persons = $connection2MySQL->query( "SELECT * FROM actors2movies" );
   if ( mysqli_num_rows( $persons ) ) { 
       while ($person = mysqli_fetch_assoc( $persons )) {   
          $personID = $person['personeID']; 
          $memoryString .= $person['personName'];       
       }
   }    
   return $memoryString;

}

浏览器中出现的错误消息看起来像:

致命错误:未知错误:null上的成员函数query()在/var/www/web26777278/html/filmstadt-quedlinburg/scripts/classes_functions.php:173 stack trace:#0/var/www/web26777278/html/html/filmstadt-quedlinburg/movie.php(354):tobsientperson('800','driocor'')#1 {main}在/var/www/web26777777278/html/www/web267777278/在第173行

这里的问题是,当我删除查询的行(以及以下内容)时,程序可以正常工作。因此,错误必须在我上面指示的行中。另一方面,如果我将该行直接复制到Movie.php中,则该行可以工作!因此,它必须必须用php文件的封装事件来做些事情。

我检查了是否需要重复class.php中的SQL连接的包装。我还检查了是否有被遗忘的括号,数据库表中的拼写错误以及此类内容。不能帮助自己。

您是否知道我可以在哪里寻找问题?

问候,谢谢弗兰克

$connection2MySQL被声明外部函数,因此在函数内部无效。

您必须将连接对象传递到函数才能正常工作

最新更新