Panggilan ke fungsi anggota mempersiapkan () pada null laravel mongodb

Masalah/Motivasi

Mengalami kesalahan ini setelah memperbarui ke Drupal 9. 1. 0 -- saya menggunakan PHP 7. 4. 11

( ! ) Fatal error: Uncaught Error: Call to a member function prepare() on null in D:\wamp64\www\workbench\workbench_d9_test1\core\lib\Drupal\Core\Database\StatementWrapper.php on line 49
( ! ) Error: Call to a member function prepare() on null in D:\wamp64\www\workbench\workbench_d9_test1\core\lib\Drupal\Core\Database\StatementWrapper.php on line 49
Call Stack
#	Time	Memory	Function	Location
1	0.9146	44434200	Drupal\business_rules\Util\BusinessRulesProcessor->__destruct( )	...\BusinessRulesProcessor.php:0
2	0.9146	44434200	Drupal\Core\KeyValueStore\DatabaseStorageExpirable->deleteAll( )	...\BusinessRulesProcessor.php:766
3	0.9147	44435904	Drupal\Core\Database\Query\Delete->execute( )	...\DatabaseStorage.php:241
4	0.9148	44436528	Drupal\Core\Database\Driver\mysql\Connection->query( )	...\Delete.php:55
5	0.9148	44436528	Drupal\Core\Database\Driver\mysql\Connection->query( )	...\Connection.php:88
6	0.9148	44437008	Drupal\Core\Database\Driver\mysql\Connection->prepareStatement( )	...\Connection.php:822
7	0.9148	44437232	Drupal\Core\Database\StatementWrapper->__construct( )	...\Connection.php:557

Langkah-langkah untuk memperbanyak

Pada titik ini, jalankan pengujian otomatis apa pun

Usulan resolusi

Untuk ditentukan

Tugas yang tersisa

Untuk ditentukan

Perubahan antarmuka pengguna

Untuk ditentukan

Perubahan API

Untuk ditentukan

Perubahan model data

Untuk ditentukan

Mencoba menyiapkan pernyataan sisipan yang berfungsi sebelumnya. Kesalahannya ada di baris 42 yang melaporkan null pada $query. Permintaan gema dan Nilai bukan nol, tetapi print_r($link) gagal, meskipun tautan awalnya berhasil

show_errors(true);

	$query = "INSERT INTO AAUW_Members (ID, FirstName, LastName, Address1, City, State, Zip)	Values (%s, %s, %s, %s, %s, %s,  %s )";
			echo "$query";
	print_r ($link);
	echo "$ID";
	echo "$FirstName";
	echo "$LastName";
	echo "$Address1";
	echo "$City";
	echo "$State";
	echo "$Zip";
	$prepare_query = $wpdb->prepare($query, $ID, $FirstName, $LastName, $Address1, $City, $State, $Zip);
			$result=$wpdb->query($prepare_query);
					
			print_r($result);			
?>
_
  • Topik ini diubah 2 tahun lalu oleh Steven Stern (sterndata) . Alasan. menghapus nama pengguna/sandi

Halaman yang saya perlu bantuan. [masuk untuk melihat tautan]

Melihat 6 balasan - 1 sampai 6 (dari total 6)

  • Moderator bcworkz

    (@bcworkz)

    print_r() pertama Anda memiliki huruf besar 'L' di Tautan. print_r($Link);
    Sebagian besar sistem server peka terhadap huruf besar-kecil, $link != $Link

    Seharusnya ada kesalahan Tautan variabel yang tidak ditentukan. Baris 41 dan 42 yang diekstraksi sendiri tidak menyebabkan kesalahan apa pun, jadi menurut saya pesannya adalah pengalih perhatian karena beberapa kesalahan sebelumnya

    Dion

    (@diondesigns)

    Awalnya Anda melewati WordPress dengan menggunakan mysqli secara langsung untuk terhubung ke database. (Seseorang berharap kredensial yang Anda posting salah; jika tidak, harap pertimbangkan untuk mengubahnya secepatnya. ) Kemudian Anda mengabaikan koneksi DB yang Anda buat dan mencoba menggunakan $wpdb

    Saran saya adalah memilih salah satu (mysqli_ atau $wpdb) dan hanya menggunakan salah satu yang Anda pilih. Jika Anda memilih mysqli, pastikan untuk membersihkan konten variabel POST sebelum mencoba memasukkannya ke dalam database. Dan pikirkan untuk memastikan Anda memiliki indeks unik di tabel DB Anda, lalu gunakan REPLACE alih-alih

    show_errors(true);
    
    	$query = "INSERT INTO AAUW_Members (ID, FirstName, LastName, Address1, City, State, Zip)	Values (%s, %s, %s, %s, %s, %s,  %s )";
    			echo "$query";
    	
    	echo "$ID";
    	echo "$FirstName";
    	echo "$LastName";
    	echo "$Address1";
    	echo "$City";
    	echo "$State";
    	echo "$Zip";
    	$prepare_query = $wpdb->prepare($query, $ID, $FirstName, $LastName, $Address1, $City, $State, $Zip,"");
    			$result=$wpdb->query($prepare_query);
    					
    			echo	"print_r($result)";
    ?>
    0 dalam kueri

    Pemula Utas hsysgrp

    (@hsysgrp)

    Halaman menerima data dan mencetak $ID, $FirstName, dll. Telah menghapus mysqli_connect ke tautan, berdasarkan pengujian lain, wpdb global ditautkan ke tabel khusus;
    Memanggil ke fungsi anggota show_errors() pada null adalah kesalahan yang dilaporkan, saya kehilangan sesuatu yang mendasar di sini… bisakah Anda juga menghapus info tautan sebelumnya di posting saya sebelumnya, maaf untuk kesalahan itu, saya lupa mengeditnya

    show_errors(true);
    
    	$query = "INSERT INTO AAUW_Members (ID, FirstName, LastName, Address1, City, State, Zip)	Values (%s, %s, %s, %s, %s, %s,  %s )";
    			echo "$query";
    	
    	echo "$ID";
    	echo "$FirstName";
    	echo "$LastName";
    	echo "$Address1";
    	echo "$City";
    	echo "$State";
    	echo "$Zip";
    	$prepare_query = $wpdb->prepare($query, $ID, $FirstName, $LastName, $Address1, $City, $State, $Zip,"");
    			$result=$wpdb->query($prepare_query);
    					
    			echo	"print_r($result)";
    ?>

    Dion

    (@diondesigns)

    Seorang moderator harus mengedit posting awal Anda untuk menghapus info DB. Saya menambahkan tag "modlook" di balasan ini, yang diharapkan akan menandai seorang moderator

    Jika Anda memuat skrip PHP Anda secara langsung (baik melalui AJAX atau pengiriman formulir), maka $wpdb tidak ada karena WordPress tidak dimuat. Dalam hal ini, solusi terbaik adalah menggunakan fungsi mysqli untuk terhubung ke database, membersihkan variabel POST, dan mengirimkan kueri

    Pemula Utas hsysgrp

    (@hsysgrp)

    Terima kasih, sekarang kesalahan nol mulai masuk akal. Halaman situs web memiliki formulir yang disisipkan panggilan tindakan formulir. php untuk memasukkan data ke tabel khusus di database wp. Bisakah saya memasukkan beban wp-load. php bukannya menautkan dengan mysqli_connect?
    Masih belajar di sini, seperti yang saya pikir sudah jelas

    Dion

    (@diondesigns)

    Praktik terbaiknya adalah membersihkan data GET/POST yang dimaksudkan untuk ditambahkan ke database. Pilihan

    show_errors(true);
    
    	$query = "INSERT INTO AAUW_Members (ID, FirstName, LastName, Address1, City, State, Zip)	Values (%s, %s, %s, %s, %s, %s,  %s )";
    			echo "$query";
    	
    	echo "$ID";
    	echo "$FirstName";
    	echo "$LastName";
    	echo "$Address1";
    	echo "$City";
    	echo "$State";
    	echo "$Zip";
    	$prepare_query = $wpdb->prepare($query, $ID, $FirstName, $LastName, $Address1, $City, $State, $Zip,"");
    			$result=$wpdb->query($prepare_query);
    					
    			echo	"print_r($result)";
    ?>
    _3 pada kueri atau
    show_errors(true);
    
    	$query = "INSERT INTO AAUW_Members (ID, FirstName, LastName, Address1, City, State, Zip)	Values (%s, %s, %s, %s, %s, %s,  %s )";
    			echo "$query";
    	
    	echo "$ID";
    	echo "$FirstName";
    	echo "$LastName";
    	echo "$Address1";
    	echo "$City";
    	echo "$State";
    	echo "$Zip";
    	$prepare_query = $wpdb->prepare($query, $ID, $FirstName, $LastName, $Address1, $City, $State, $Zip,"");
    			$result=$wpdb->query($prepare_query);
    					
    			echo	"print_r($result)";
    ?>
    4 pada setiap variabel terserah Anda. Secara pribadi, dengan hanya satu kueri, Anda jauh lebih baik menggunakan
    show_errors(true);
    
    	$query = "INSERT INTO AAUW_Members (ID, FirstName, LastName, Address1, City, State, Zip)	Values (%s, %s, %s, %s, %s, %s,  %s )";
    			echo "$query";
    	
    	echo "$ID";
    	echo "$FirstName";
    	echo "$LastName";
    	echo "$Address1";
    	echo "$City";
    	echo "$State";
    	echo "$Zip";
    	$prepare_query = $wpdb->prepare($query, $ID, $FirstName, $LastName, $Address1, $City, $State, $Zip,"");
    			$result=$wpdb->query($prepare_query);
    					
    			echo	"print_r($result)";
    ?>
    5 fungsi…memuat WordPress (termasuk tema dan semua plugin) untuk tugas sederhana seperti itu tidak perlu berlebihan