gpt4 book ai didi

php - 从 mysql 导入的数组有效,但 php 不能将数组用作数组?

转载 作者:行者123 更新时间:2023-11-30 23:36:04 25 4
gpt4 key购买 nike

由于 $params=array($data); 这一行,下面的代码将无法运行。它需要 $data 以外的东西。或者它需要在此行之前对 $data 进行处理。

如果该行写成 $params=array("A", "B", "C", "D");然后效果很好,但是我的数组在 $data 变量中,不是那样写的。如果有一种方法可以将数组转换为这样写出,那也行。

最终结果应显示数组内容的所有可能组合(而非排列)。如上例所示,它显示 ABC、BD 等。

$data = mysql_query('SELECT weight FROM my_table WHERE session_id = "' . session_id() . '"'); 

$params=array($data);

$combinations=getCombinations($params);
function getCombinations($array)
{
$length=sizeof($array);
$combocount=pow(2,$length);
for ($i=1; $i<$combocount; $i++)
{

$binary = str_pad(decbin($i), $length, "0", STR_PAD_LEFT);
$combination='';
for($j=0;$j<$length;$j++)
{
if($binary[$j]=="1")
$combination.=$array[$j];
}
$combinationsarray[]=$combination;
echo $combination."&lt;br&gt;";
}
return $combinationsarray;
}

最佳答案

mysql_query() 只返回一个结果资源 ID。要检索数据,您必须使用“获取”命令之一,例如

$params = array();
while ($row = mysql_fetch_assoc($data)) {
$params[] = $row['weight'];
}

此外,您的查询可能容易受到 SQL 注入(inject)攻击。我不会暗中相信 session_id() 的值。我不完全确定这一点,但它可能只是从 session cookie 中检索值。

至少,使用 mysql_real_escape_string() 清理值。将您的代码带出黑暗时代的更强大的解决方案是使用 PDO 和参数绑定(bind)。

关于php - 从 mysql 导入的数组有效,但 php 不能将数组用作数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7264925/

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