如何在同一个向量中组合2个查询(json_encode和php)
我相信这是一个简单的问题 我想运行这两个查询,但不知道如何运行 大家好,我相信这是一件简单的事情 我想执行这两个查询如何在同一个向量中组合2个查询(json_encode和php),php,mysql,json,Php,Mysql,Json,我相信这是一个简单的问题 我想运行这两个查询,但不知道如何运行 大家好,我相信这是一件简单的事情 我想执行这两个查询 从diligencias中选择*,其中IDPROCESS='$process\u id'和 SELECT*FROM processos,其中id='$process\u id' 仅使用一个查询的代码: <?php include("../../includes/conectar.php"); if(isset($_POST['id']) && isset(
从diligencias中选择*,其中IDPROCESS='$process\u id'
和
SELECT*FROM processos,其中id='$process\u id'
仅使用一个查询的代码:
<?php
include("../../includes/conectar.php");
if(isset($_POST['id']) && isset($_POST['id']) != "")
{
$process_id = $_POST['id'];
$qryLista = mysqli_query($con, "SELECT * FROM processos WHERE id = '$process_id'");
while($resultado = mysqli_fetch_assoc($qryLista)){
$vetor[] = array_map('utf8_encode', $resultado);
}
echo json_encode($vetor);
}
?>
如果表没有相同的列名,您可以使用以下查询将它们连接起来:
SELECT *
FROM processos p
JOIN diligencias d ON d.idprocesso = p.id
WHERE p.d = '$process_id'
如果表确实有相似的列名,则需要提供重叠的名称,例如
SELECT p.*, d.id AS diligencias_id, d.xxx AS diligencias_xxx
FROM processos p
JOIN diligencias d ON d.idprocesso = p.id
WHERE p.d = '$process_id'
请注意,在现有代码中
isset($_POST['id']) != ""
应该是
$_POST['id'] != ""
此外,您还容易受到SQL注入的攻击,应该使用准备好的查询。例如:
$process_id = $_POST['id'];
$stmt = $con->prepare("SELECT *
FROM processos p
JOIN diligencias d ON d.idprocesso = p.id
WHERE p.d = ?");
$stmt->bind_param('i', $process_id);
$qryLista = $stmt->get_result();
while($resultado = $qryLista->fetch_assoc()){
$vetor[] = array_map('utf8_encode', $resultado);
}
echo json_encode($vetor);
如果表没有相同的列名,您可以使用以下查询将它们连接起来:
SELECT *
FROM processos p
JOIN diligencias d ON d.idprocesso = p.id
WHERE p.d = '$process_id'
如果表确实有相似的列名,则需要提供重叠的名称,例如
SELECT p.*, d.id AS diligencias_id, d.xxx AS diligencias_xxx
FROM processos p
JOIN diligencias d ON d.idprocesso = p.id
WHERE p.d = '$process_id'
请注意,在现有代码中
isset($_POST['id']) != ""
应该是
$_POST['id'] != ""
此外,您还容易受到SQL注入的攻击,应该使用准备好的查询。例如:
$process_id = $_POST['id'];
$stmt = $con->prepare("SELECT *
FROM processos p
JOIN diligencias d ON d.idprocesso = p.id
WHERE p.d = ?");
$stmt->bind_param('i', $process_id);
$qryLista = $stmt->get_result();
while($resultado = $qryLista->fetch_assoc()){
$vetor[] = array_map('utf8_encode', $resultado);
}
echo json_encode($vetor);
表的列名是否相同
选择*FROM diligencias d JOIN processos p ON d.idprocessor=p.id,其中p.id=:process_id
并查看结果。谢谢@danblack,我将阅读sql Injection中的文章表的列名相同吗选择*FROM diligencias d JOIN processos p ON d.idprocessor=p.id其中p.id=:process_id
并查看结果。谢谢@danblack,我将阅读sql injection的文章