簡體   English   中英

將“where in (query)”查詢轉換為mysqli中的准備語句

[英]Convert "where in (query)" query to prepared statement in mysqli

我想知道如何將此查詢轉換為准備好的語句。 我是否必須將兩者都轉換為准備好的語句(最好的情況是如果您知道面向對象的風格,但另一個也可以......)? 我完全不知道如何做到這一點,因為通常你會在准備好的語句中立即獲取數組,這樣你就可以關閉它們,不是嗎?

如果沒有辦法,你有什么辦法嗎?

php:

$queryinquery = "SELECT `followed` FROM `follows` WHERE `follower` = '$username'";
$query1 = mysqli_query($db, "
SELECT * FROM `whatever` WHERE `id` IN ($queryinquery) ORDER BY `id` DESC LIMIT 10;
");

試試這個。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// prepare and bind
$stmt = $conn->prepare("SELECT * FROM `whatever` WHERE `id` IN (SELECT `followed` FROM `follows` WHERE `follower` = ?) ORDER BY `id` DESC LIMIT 10");
$stmt->bind_param("s", $username);

// set parameters and execute
$username= "John";
$stmt->execute();

// fetch your data code here

$stmt->close();
$conn->close();
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM