reales - Cómo ejecutar 2 o más consultas SQL en PHP sin unir tablas
sql injection 1'' or ''1'' ''1 (1)
para saber por qué obtiene una pantalla en blanco, debe activar error_reporting, agregue lo siguiente al comienzo de su código php antes que nada:
error_reporting(-1);
También agregue un código para mostrar los errores que pueden ocurrir en MySQL:
if(isset($UserID)) {
$users = $con->prepare("
SELECT DISTINCT
d.FirstName
,d.LastName
,d.Picture
FROM Details
WHERE d.UserId = ?
");
if (!$users) {
echo ''MySQL Connect Error in Query: ('' . $mysqli->errno . '') '';
}
$binding = $users->bind_param(''i'', $GetUserId);
if (!$binding) {
echo ''MySQL Connect Error in Query: ('' . $mysqli->errno . '') '';
}
if($users->execute() == false) {
echo ''Error: '' . $con->error;
}
$binding_results = $users->bind_result(
$FirstName,
$LastName,
$Picture
);
if (!$binding_results) {
echo ''MySQL Connect Error in Query: ('' . $mysqli->errno . '') '';
}
$users2 = $con->prepare("
SELECT DISTINCT
Foo
, Bar
, FooBar
FROM Bizz
WHERE UserId = ?
");
if (!$users2) {
echo ''MySQL Connect Error in Query: ('' . $mysqli->errno . '') '';
}
$binding2 = $users2->bind_param(''i'', $GetUserId);
if (!$binding2) {
echo ''MySQL Connect Error in Query: ('' . $mysqli->errno . '') '';
}
if($users2->execute() == false) {
echo ''Error: '' . $con->error;
}
$binding_results2 = $users2->bind_result(
$Foo,
$Bar,
$FooBar
);
if (!$binding_results2) {
echo ''MySQL Connect Error in Query: ('' . $mysqli->errno . '') '';
}
Puedo ver un error en su primera consulta. está utilizando d.FirstName donde, como el nombre de la tabla es Detalles
Esta pregunta ya tiene una respuesta aquí:
Para seleccionar datos de 1 tabla, estoy usando el siguiente código:
if(isset($UserID)) {
$users = $con->prepare("
SELECT DISTINCT
d.FirstName
,d.LastName
,d.Picture
FROM Details d
WHERE d.UserId = ?
");
$users->bind_param(''i'', $GetUserId);
$users->execute();
$users->bind_result(
$FirstName,
$LastName,
$Picture
);
} else {
echo "There is no User ID detected, try to refresh browser.";
}
while ($users->fetch()) { ?>
<div class="grid-group">
<span>Personal Details</span>
<div class="grid-column">
<div class="grid-item header">First Name </div>
<div class="grid-item header">Last Name </div>
<div class="grid-item header">Picture </div>
</div>
<div class="grid-column">
<div class="grid-item"><?php echo $FirstName; ?></div>
<div class="grid-item"><?php echo $LastName; ?></div>
<div class="grid-item"><?php echo $Picture; ?></div>
</div>
</div>
<?php } ?>
¿Cómo puedo agregar 1 consulta más para seleccionar algunos datos de otra tabla? Algo como:
SELECT Foo, Bar, FooBar
FROM Bizz
WHERE UserId = ?
¿Debería usar mysqli_multi_query
? ¿Pero cómo puedo usarlo y bind_result
después de bind_result
? No puedo lograr la sintaxis correcta. O hay alguna otra manera?
Tendré que imprimir datos de 2 tablas como esta:
while ($users->fetch()) { ?>
<div class="grid-group">
<span>Personal Details</span>
<div class="grid-column">
<div class="grid-item header">First Name </div>
<div class="grid-item header">Last Name </div>
<div class="grid-item header">Picture </div>
</div>
<div class="grid-column">
<div class="grid-item"><?php echo $FirstName; ?></div>
<div class="grid-item"><?php echo $LastName; ?></div>
<div class="grid-item"><?php echo $Picture; ?></div>
</div>
</div>
<div class="grid-group">
<span>Foo Bar</span>
<div class="grid-column">
<div class="grid-item header">Foo </div>
<div class="grid-item header">Bar </div>
<div class="grid-item header">FooBar </div>
</div>
<div class="grid-column">
<div class="grid-item"><?php echo $Foo; ?></div>
<div class="grid-item"><?php echo $Bar; ?></div>
<div class="grid-item"><?php echo $FooBar; ?></div>
</div>
</div>
<?php } ?>
Por alguna razón, no puedo usar JOINS
. ¿Tienes alguna idea?
ACTUALIZAR
Si preparo 2 consultas en seguimiento, tengo una pantalla en blanco:
if(isset($UserID)) {
$users = $con->prepare("
SELECT DISTINCT
d.FirstName
,d.LastName
,d.Picture
FROM Details
WHERE d.UserId = ?
");
$users->bind_param(''i'', $GetUserId);
$users->execute();
$users->bind_result(
$FirstName,
$LastName,
$Picture
);
$users2 = $con->prepare("
SELECT DISTINCT
Foo
, Bar
, FooBar
FROM Bizz
WHERE UserId = ?
");
$users2->bind_param(''i'', $GetUserId);
$users2->execute();
$users2->bind_result(
$Foo,
$Bar,
$FooBar
);
} else {
echo "There is no User ID detected, try to refresh browser.";
}
while ($users->fetch()) { ?>
...
¿Tienes alguna idea?