Я хочу сделать логин для класса (поэтому я сейчас не ищу предотвращения инъекций SQL), и у меня возникли проблемы с использованием подсчета строк, чтобы узнать, могу ли я войти в систему или нет ,PHP SQL row count
Как я могу подсчитать строки из выделения? Я пробовал некоторые вещи, которые просто не сработали.
Ошибка, которую я получаю, находится в строке с комментарием.
$host = "localhost";
$serverusername = "root";
$serverpassword = "";
$database = "usuarios";
$table = "user";
$username = $_POST['username'];
$password = $_POST['password'];
$mysqli = new mysqli($host, $serverusername, $serverpassword, $database);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$query = "SELECT * FROM ".$table." WHERE `username` = ".$username." AND `password` = ".$password;
$result = $mysqli->query($query);
$row = $result -> num_rows; //this line has an error. Trying to get property of non-object
if ($row != 0)
{
header('Location : index.html');
die();
}
else
{
echo "password incorrecta!";
}
$mysqli -> close();
Ваш код содержит ошибки синтаксиса. Проконсультируйтесь по следующим ссылкам: http://php.net/manual/en/mysqli.error.php и http://php.net/manual/en/function.error-reporting.php и примените это к своему коду. –
Пароль, вероятно, является строкой. И посмотрите на подготовленные заявления – Strawberry
Чтобы предотвратить использование кода из SQL-инъекции, используйте [PDO :: prepare] (http://php.net/manual/en/pdo.prepare.php) –