如何对数据库列进行搜索,并返回匹配的行 [duplicate]

How to seach a database column, and return matching rows [duplicate]

提问人:Greenreader9 提问时间:12/8/2021 最后编辑:DharmanGreenreader9 更新时间:12/8/2021 访问量:47

问:

我有以下数据库(名为“Account_info”):

    |id (All Unique)|domain_name (All unique)|   account_name |account_key|
    |---------------|------------------------|----------------|-----------|
    | 1             |example.com             |account_23657612|889977     |
    | 2             |example.net             |account_53357945|889977     |
    | 3             |example.edu             |account_53357945|889977     |
    | 4             |example.xyz             |account_93713441|998822     |

我希望在数据库中搜索域“example.net”,并将该域的“帐户密钥”列作为变量返回。

例:

搜索词:example.net

响应:889977

到目前为止,我的代码:

$domainSearch = "example.net";
$sql = mysqli_query($connect,"SELECT `account_name` FROM `Account_info` WHERE `domain_name`='$domainSearch'");
if($sql){
    //Some code here that sets the variable "result" to "889977"
}
php 选择 mysqli

评论


答:

1赞 Ken Lee 12/8/2021 #1

若要获取帐户密钥作为返回值,只需从结果集中获取数据并将其作为关联数组返回

另一方面,请使用参数化的 parpared 语句来避免 SQL 注入攻击。

因此改变

$sql = mysqli_query($connect,"SELECT `account_name` FROM `Account_info` WHERE `domain_name`='$domainSearch'");


$sql = "SELECT * FROM Account_info WHERE domain_name=?"; // SQL with parameters
$stmt = $connect->prepare($sql); 
$stmt->bind_param("s", $domainSearch);
$stmt->execute();
$result = $stmt->get_result(); // get the mysqli result
$user = $result->fetch_assoc(); // fetch data   

echo $user["account_key"];

// to assign as a variable -- $var1=$user["account_key"];