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 に答える