mysql — используйте переменную PHP для поиска в базе данных SQL

У меня есть база данных под названием $ 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";

Точнее, вызов переменной.

0

Решение

Попробуйте что-то вроде этого:

$sql = "SELECT userID, userName FROM users WHERE userName = '".$usersName."'";
0

Другие решения

Вы должны использовать кавычки вокруг вашего $ userName.

$sql = "SELECT userID, userName FROM users WHERE userName = '$usersName'";

Но, чтобы быть ясным, вы должны избегать ввода пользователя по крайней мере с mysqli_real_escape_string($conn, $userName);

0

Лучший подход это:

$sql = "SELECT userID, userName FROM users WHERE userName ='".mysqli_real_escape_string($conn, $usersName)."'";

Здесь это не так применимо, поскольку вы передаете простой текст. Но когда вы берете данные со страницы HTML, вы должны использовать этот способ.

0
По вопросам рекламы [email protected]