• 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

0 głosów
410 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,060 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,060 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ź 755 wizyt
0 głosów
1 odpowiedź 2,094 wizyt
pytanie zadane 15 lipca 2018 w PHP przez Hexan Początkujący (430 p.)
+1 głos
1 odpowiedź 1,025 wizyt

93,428 zapytań

142,423 odpowiedzi

322,652 komentarzy

62,789 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...