gpt4 book ai didi

php - 转换数组取字符串

转载 作者:行者123 更新时间:2023-12-01 00:41:07 25 4
gpt4 key购买 nike

我想知道如何将我的数组转换成字符串

   $formats = $_POST['formats'];
$topics = $_POST['topics'];

例如,如果我回显上面的内容,它只会打印数组。我希望它将数组显示为字符串,以便我可以在下面使用它:

 $resources = "select * from resources where stage LIKE '%".$stage."%' and formats LIKE '%".$formats."%' and topics LIKE '%".$topics."%'";

有人建议我做这样的事情 $formats = $_POST['formats'][0];但我想将整个数组输出为字符串,例如 "idea generation, business" 等同于 ["idea generation", business"]

最佳答案

由于无法确定您使用哪个数据库来进行该查询,我建议您使用准备好的语句参数化您的值来构建查询字符串 根据您在 PHP.net documentation 中阅读的内容,将其转换为 PDO 对象关于这个问题。

Binds a PHP variable to a corresponding named or question mark placeholder in the SQL statement that was used to prepare the statement. Unlike PDOStatement::bindValue(), the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

如您所见,这样您就不必在访问之前将数组变量 转换为字符串,此外,您还为您的查询语句授予了安全性。

所以,不是内爆字符串,而是这样的:

<?php
/* Execute a prepared statement by binding PHP variables */
$stage = $_POST['stage'];
$formats = $_POST['formats'];
$topics = $_POST['topics'];
$stmt = $db->prepare('select * from resources where stage LIKE % :stage % and formats LIKE % :formats % and topics LIKE % :topics %');
$stmt->bindParam(':stage', $stage);
$stmt->bindParam(':formats', $formats);
$stmt->bindParam(':topics', $topics);
$stmt->execute();
?>

编辑:当您更新您正在使用 MySQLi 时,它不会有什么不同。

$stmt = $mysqli_db->prepare('select * from resources where stage LIKE % ? % and formats LIKE % ? % and topics LIKE % ? %');
// assuming all your params are strings
$stmt->bind_param('sss', $stage, $formats, $topics);
$stmt->execute();

与使用 mysqli 一样,因为它是一个无缓冲的 sql 查询处理程序,如果您使用 $stmt->store_result(); 循环同时执行,您应该存储您的结果

关于如何使用的任何疑问mysqlipdo可以在 php.net 文档(上面的链接)中轻松找到对象、方法和属性。

当然,这只是根据您的明显需求提出的更好做法的建议,但您仍然可以使用 implode函数来实现你的字符串。

关于php - 转换数组取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32271816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com