【问题标题】:I want to match my array value to a column value from a table in php我想将我的数组值与 php 表中的列值匹配
【发布时间】:2020-08-14 12:05:58
【问题描述】:
date_default_timezone_set('Asia/Kolkata');
header('Access-Control-Allow-Origin: *');

include_once('conn.php');
$data2 = array();

$content = trim(file_get_contents("php://input"));
$data = json_decode($content);
$couplenumber = $data->contact_number;

$sql = "SELECT * from `users_table`  where `phone`  IN  '$couplenumber'";

$result = $conn->query($sql);
if ($result->num_rows > 0) {

    while ($row = $result->fetch_assoc()) {
        array_push($data2, $row);
    }
    echo json_encode($data2);
} else {
    echo 0;
}

$conn->close();

$couplenumber 是一个数组,它有多个联系人号码。我想将我的数组值与名为 phone 的表列匹配。电话有一个字符串值,表示单个联系人。将电话值与$couplenumber值的多个联系人匹配后如何获取数据?

【问题讨论】:

  • 您可以使用implode 将数组转换为字符串。
  • 警告:您的代码容易受到 SQL 注入攻击。您应该使用参数化查询和准备好的语句来帮助防止攻击者通过使用恶意输入值来破坏您的数据库。 bobby-tables.com 给出了风险解释,以及如何使用 PHP / mysqli 安全地编写查询的一些示例。 切勿将未经处理的数据直接插入您的 SQL 中。按照您现在编写代码的方式,有人可以轻松窃取、错误更改甚至删除您的数据。

标签: php mysql select


【解决方案1】:

如果您向我们展示您的数组内容会更好。但是,如果你有一些东西,比如一个对象数组和一个只有 id 的数组,让我们试试吧:

//Arrays are like :
$tab1 = [3,4];
//Considering Object is a class which receive id in constrictor and has et getId method.
$obj1 = new Object(1);
$obj2 = new Object(2);
$items = [$obj1, $obj2];

$tab2 = [];
foreach ($items as $item) {
    $tab2[] = $item->getId();
}

$diff = array_merge(array_diff($tab1, $tab2), array_diff($tab2, $tab1));

// True there are same, false there differents.
var_dump( empty($diff) && (count($tab1) === count($tab2)) );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2021-12-08
    • 2011-07-22
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多