【发布时间】:2015-11-29 21:08:40
【问题描述】:
我有以下行:
$formatsArray = $_POST['formats'];
$topicsArray = $_POST['topics'];
// Converting the array into individual strings
$formats = implode(",", $formatsArray);
$topics = implode(",", $topicsArray);
// Prepare the statement
$resources = $con->prepare("SELECT * FROM resources WHERE
(format IN (?))
AND (topic IN (?))");
// Bind the statement
$resources->bind_param('ss',$formats, $topics);
问题是从一个数组派生的主题可以包含多个字符串,但“s”只能识别 1。我希望主题数组有 10 个条目,而不是 10 个条目,格式相同.
我正在考虑计算数组的大小并在每次迭代中添加一个 s,但不确定如何。 任何帮助将不胜感激。
// Count array
$formatCount = count($formatsArray);
$topicCount = count($topicsArray);
【问题讨论】:
-
不可能。占位符代表 SINGLE 值。填充到占位符中的 csv 字符串
a,b,c不会是in考虑的三个独立的东西,它将是... IN('a,b,c')- 一个值。您必须动态构建一个查询字符串,并根据您的值输入尽可能多的?,或者完全使用其他东西。 -
您将单个值绑定到每个占位符
?.... 所以值数组不会绑定到单个占位符 -
数组已被转换为字符串,因此实例将返回创意生成,客户开发问题是我想单独评估“创意生成”和“客户开发”
-
这是一个全新的问题
标签: php mysql mysqli prepared-statement