小编dex*_*ter的帖子

用插入值数组执行准备好的语句不起作用

我正在尝试使用插入值数组使用准备好的语句在数据库中定义一个SELECTin php。目前,我正在使用存储过程,我的代码看起来像这样:

$user_id = $user["id_user_key"];
$is_active = 1;

$stmt = $db->prepare("CALL spGetUserProducts(?, ?)");
$stmt->bind_param("ii", $user_id, $is_active);
$stmt->execute();
$result = $stmt->get_result();
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但在现阶段,我想摆脱我的存储过程和做所有的SQLphp

我将上面的代码更改为此:

$user_id = $user["id_user_key"];
$is_active = 1;

$stmt = $db->prepare(
           "SELECT
                tp.id_product AS id,
                tp.product_name AS pname,
                tp.product_code AS pcode,
                tp.product_icon AS picon
            FROM
                tbl_user_products tup
            INNER JOIN
                tbl_products tp
                ON tp.id_product = tup.id_product_fk
            WHERE
                tup.active = :isActive
                AND tup.id_user_fk = :getUser"
);
$stmt->execute(array(
    ":getUser" => $user_id,
    ":isActive" => $is_active)
);
$result = …
Run Code Online (Sandbox Code Playgroud)

php mysql xampp

2
推荐指数
1
解决办法
60
查看次数

循环访问JSON对象并根据键名生成数组

我有以下json对象:

[{"i_value":"1","i_value_2":"1"},
{"i_value":"24","i_value_2":"24"}]
Run Code Online (Sandbox Code Playgroud)

然后我有以下循环:

let setData = [];
for (let i = 0; i < response.data.length; i++) {
    if ('access key name' === 'i_value') {
        setData.push(response.data[i].i_value)
    }
}
setData = setData.map(Number);
console.log(setData);
Run Code Online (Sandbox Code Playgroud)

我只想setData在键名=== i_value不填充新数组时填充i_value_2

我尝试了以下方法:

let setData = [];
let keys = Object.keys(response.data);
for (let i = 0; i < response.data.length; i++) {
    if (keys[i] === 'i_value') {
        setData.push(response.data[i].i_value)
    }
}
setData = setData.map(Number);
console.log(setData);
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有什么想法吗?

javascript

0
推荐指数
1
解决办法
53
查看次数

标签 统计

javascript ×1

mysql ×1

php ×1

xampp ×1