sql >> Database >  >> RDS >> Mysql

PHP-fout:aanroep van een lidfunctie rowCount() op een niet-object

We hebben hier hoogstwaarschijnlijk te maken met strings, dus de variabelen in je waarden moeten tussen aanhalingstekens staan.

WHERE ens_cin='$login' AND ens_pass='$password'";

Bovendien betekent het alleen gebruiken van PDO niet dat u veilig bent tegen SQL-injectie.

Een inzicht:

Zorg ervoor dat u inderdaad verbinding maakt via PDO en niet via mysqli_ . Ik zie dit soort vragen vaak.

Als dat het geval is, vermengen die verschillende MySQL API's zich niet met elkaar.

Nu dit:

$password=$_GET["password"];

Een wachtwoord doorgeven via een GET is ook niet veilig; je weet niet wie er misschien "meeluistert". Je zou POST moeten gebruiken. Ik hoop ook dat je een hash gebruikt en geen platte tekst voor het opslaan van wachtwoorden.

Sidenote:zorg ervoor dat je inderdaad GET gebruikt en niet verward met POST, mocht dit afkomstig zijn van een HTML-formulier.

U controleert waarschijnlijk niet op fouten.

Voeg $idconnex->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); toe direct nadat de verbinding is geopend.

Voeg foutrapportage toe naar de bovenkant van uw bestand(en) om fouten te vinden.

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

Kanttekening: Foutrapportage mag alleen worden gedaan in enscenering, en nooit in productie.



  1. Hoe Postgres bytea-kolom als bestand te downloaden

  2. mysql kruisen

  3. Hoe twee tabellen kolom voor kolom te vergelijken in orakel

  4. Wat is PDO, hoe is het gerelateerd aan SQL-injectie en waarom zou ik dit gebruiken?