У меня есть база данных под названием $ addressdb. Я хочу найти таблицу в этой базе данных с результатом, введенным пользователем ($ usersName). Моя ошибка, вероятно, действительно глупа. Я новичок в MySQL.
<?php
//IF THE LOGIN is submitted...
if ($_POST['Login']){
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "addressdb";
$usersName = $_POST['users'];
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT userID, userName FROM users WHERE userName =$usersName";
$result = mysqli_query($conn, $sql);
…
Моя строка ошибки
$sql = "SELECT userID, userName FROM users WHERE userName =$usersName";
Точнее, вызов переменной.
Попробуйте что-то вроде этого:
$sql = "SELECT userID, userName FROM users WHERE userName = '".$usersName."'";
Вы должны использовать кавычки вокруг вашего $ userName.
$sql = "SELECT userID, userName FROM users WHERE userName = '$usersName'";
Но, чтобы быть ясным, вы должны избегать ввода пользователя по крайней мере с mysqli_real_escape_string($conn, $userName);
Лучший подход это:
$sql = "SELECT userID, userName FROM users WHERE userName ='".mysqli_real_escape_string($conn, $usersName)."'";
Здесь это не так применимо, поскольку вы передаете простой текст. Но когда вы берете данные со страницы HTML, вы должны использовать этот способ.