我找不到解决方案,花费数小时的故障排除。挫败感稳步成长。
问题:我尝试将网页传输到需要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
被声明外部函数,因此在函数内部无效。
您必须将连接对象传递到函数才能正常工作