插入后执行多个查询

时间:2016-12-15 20:58:53

标签: php mysqli

我有一个插入用户的查询。插入后我想使用' mysqli_insert_id'在多个查询中使用的值,用于存储用户的首选项。

在我的多重查询中,返回的是“查询为空”'数据库中没有插入任何内容(嗯,用户是,但那就是它)

以下部分有什么问题?我错过了什么?

include('../../config.php');

$query = "INSERT INTO users(
            name)
          VALUES(
            '$name')";

$result = mysqli_query($db, $query) or die(mysqli_error($db));

 if($result){

    $userId = mysqli_insert_id($db);
    $query2 = '';
    foreach ($tasks as $taskId) {
        $query2 .= "INSERT INTO
                        usertaskpreferences (user_id, task_id)
                    VALUES ('$userId', '$taskId');";
    }

    foreach ($shifts as $shiftId) {
        $query2 .= "INSERT INTO
                        usershiftpreferences (user_id, shift_id)
                    VALUES ('$userId', '$shiftId');";
    }

    $query2 = substr($sql2, 0, -1); //remove last ';'
    $result2 = mysqli_multi_query($db, $query2) or die(mysqli_error($db));

    echo 'success';
}

1 个答案:

答案 0 :(得分:2)

您使用的是错误的,可能为空的变量table.setPreferredScrollableViewportSize(table.getPreferredSize());

const trunc = (n, decimalPlaces) => {
  const decimals = decimalPlaces ? decimalPlaces : 2;
  const asString = n.toString();
  const pos = asString.indexOf('.') != -1 ? asString.indexOf('.') + decimals + 1 : asString.length;
  return parseFloat(n.toString().substring(0, pos));
};

console.log(trunc(3.14159265359));
console.log(trunc(11.1111111));
console.log(trunc(3));
console.log(trunc(11));
console.log(trunc(3.1));
console.log(trunc(11.1));
console.log(trunc(3.14));
console.log(trunc(11.11));
console.log(trunc(3.141));
console.log(trunc(11.111));

所以它看起来像

$sql2