1

我有一个名为 $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";

更具体地说,变量调用。

4

3 回答 3

1

最好的方法是:

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

在这里它不太适用,因为您传递的是纯文本。但是当从 html 页面获取数据时,你应该使用这种方式。

于 2015-11-24T08:20:34.180 回答
0

尝试这样的事情:

$sql = "SELECT userID, userName FROM users WHERE userName = '".$usersName."'";
于 2015-11-24T08:20:03.180 回答
0

您需要在 $userName 周围使用引号。

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

但要清楚,您应该至少使用mysqli_real_escape_string($conn, $userName);

于 2015-11-24T08:20:31.743 回答