• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Object of class mysqli could not be converted to string in C:\...\register.php on line 8

Object Storage Arubacloud
0 głosów
336 wizyt
pytanie zadane 31 lipca 2019 w PHP przez r.mar Początkujący (470 p.)

Nie mogę rozwiązać tego problemu (tytuł). Szukałem odpowiedzi na ten problem, ale nigdzie go nie znalazłem.

Register.php:

<?php
include "db.php";



extract($_POST);
	
	$fname = str_replace($link, "'","`",$fname); 
	$fname = mysqli_real_escape_string($fname);
	
	$lname = str_replace($link, "'","`",$lname); 
	$lname = mysqli_real_escape_string($link,$lname); 
	        
	$username = str_replace($link, "'","`",$username); 
	$username = mysqli_real_escape_string($link,$username); 

	$password = str_replace($link, "'","`",$password); 
	$password = mysqli_real_escape_string($link,$password);
	$password = md5($link,$password);
	
mysqli_query($connect, "INSERT INTO tbluser (fname,lname,gender)VALUES('$fname','$lname','$gender','$')");
                           //$sql = "INSERT INTO `tbluser`(`fname`, `lname`, `gender`) VALUES ('$fname','$lname','$gender')";
$result = mysqli_query($sql);

if(mysqli_affected_rows($connect) > 0){
	echo '<p>Employee Added </p>';
	echo '<a href="index.html">Go Back</a>';
   } else {
	echo 'Employee NOT Added<br />';
	echo mysqli_error ($connect);
   }

 if($result)
	{
		$a = mysqli_query("SELECT * FROM `tbluser` WHERE `fname` = '$fname' ");
		$aa = mysqli_fetch_array($a);
		
		if($a)
		{
			$aaa = $aa['user_Id'];
			$sql = "INSERT INTO `tblaccount`(`username`, `password`, `user_Id`) VALUES('$username','$password',$aaa)";
			$res = mysqli_query($sql);
			
			if($res==true)
                            {
                                   echo '<script language="javascript">';
                                    echo 'alert("Successfully Registered")';
                                    echo '</script>';
                                    echo '<meta http-equiv="refresh" content="0;url=../index.php" />';
                            }

		}
			
		
	}




?>

db.php:

<?php
$host = "localhost";
$user = "root";
$pwd  = "";
$db   = "dbforum";

$link = mysqli_connect("localhost", "root", "", "dbforum") or die($link);

//$con = mysqli_connect($host,$user,$pwd) or die("Could not connect");
//$con = mysqli_select_db($db,$con) or die("No database");

$connection = mysqli_connect("localhost", "root", "", "dbforum");
    if (!$connection) {
        die("Database connection failed: " . mysqli_connect_error());
    }


    // Selecting a database 

    $db = mysqli_select_db($connection, "dbforum");
    if (!$db) {
        die("Database selection failed: " . mysqli_connect_error());
    }

?>

 

1 odpowiedź

0 głosów
odpowiedź 31 lipca 2019 przez wiktoz Mądrala (7,040 p.)
Próbujesz do funkcji str_replace() włożyć argument $link, który jest obiektem mysqli. Nie możesz tego zrobić, bo co by to w ogóle miało oznaczać.

Napisz jaki efekt chciałeś osiągnąć, to Ci pomogę.
komentarz 31 lipca 2019 przez r.mar Początkujący (470 p.)
Tworze forum. Mam problem z tym, aby połączyć logowanie/rejestracje z bazą SQL, ale ciągle jest jakiś problem. To co widzisz to jest source code jakiegoś forum, które lekko zmodyfikowałem, bo miało jeszcze więcej errorów. Pierwsze rzecz jaką zmieniłem to była zmiana sql_... na sqli_..., bo czytałem, że Xampp używa nowszej wersji php i nie obsługuje już tego sql. I od tamtej pory rozpoczęła się walka z errorami. Jak coś naprawie, to zaraz coś wyskakuje. Chcę żeby w końcu połączyło się to z bazą SQL.
komentarz 31 lipca 2019 przez wiktoz Mądrala (7,040 p.)

Funkcja mysqli_real_escape_string jest już nieużywana przez programistów i raczej odradza się jej stosowania. Aczkolwiek ma ona za zadanie zapobiegania "wstrzykiwaniu SQL'a". W pliku db.php nie wiem, dlaczego zmienna $link i $connection są takie same. Po co to? W ogóle ten cały kod nadaje się do śmietnika. Spróbuj od nowa to napisać. Tutaj masz tutorial od pana Zelenta. Jest to PDO, czyli bardzo fajny i zalecany sposób łączenia się z bazą danych.

https://www.youtube.com/watch?v=6fn55yrdwkk

Podobne pytania

0 głosów
1 odpowiedź 631 wizyt
0 głosów
1 odpowiedź 1,930 wizyt
pytanie zadane 15 lipca 2018 w PHP przez Hexan Początkujący (430 p.)
+1 głos
1 odpowiedź 629 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...