Php 在数组变量中存储多个数据
我需要一些在数组中存储数据的帮助。数组变量Php 在数组变量中存储多个数据,php,mysql,session,Php,Mysql,Session,我需要一些在数组中存储数据的帮助。数组变量$\u SESSION有问题,因为它一次只允许存储一个数据,而它已经覆盖了数据 当我尝试这个: $link = mysqli_connect('localhost', 'mydbusername', 'mydbpassword', 'mydbname'); $campaign_db = "SELECT campaign_name FROM campaign WHERE username = 'myusername'"; if($stmt = mysql
$\u SESSION
有问题,因为它一次只允许存储一个数据,而它已经覆盖了数据
当我尝试这个:
$link = mysqli_connect('localhost', 'mydbusername', 'mydbpassword', 'mydbname');
$campaign_db = "SELECT campaign_name FROM campaign WHERE username = 'myusername'";
if($stmt = mysqli_prepare($link, $campaign_db))
{
// Set parameters
$param_username = $_SESSION['username'];
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt))
{
// Bind variables to the prepared statement as parameters
mysqli_stmt_execute($stmt);
$results = mysqli_stmt_get_result($stmt);
while ($rows = mysqli_fetch_array($results, MYSQLI_NUM))
{
foreach ($rows as $campaign)
{
$_SESSION['campaign'] = $campaign;
}
}
}
print_r($_SESSION);
// Close statement
mysqli_stmt_close($stmt);
}
while ($rows = mysqli_fetch_array($results, MYSQLI_NUM))
{
foreach ($rows as $campaign)
{
$_SESSION['campaign'] = array($campaign);
}
)
我只会得到这个:
Array
(
[campaign] => facebook
)
应该是:
Array
(
[campaign] => somename [campaign] => youtube [campaign] => google [campaign] => linkedlin [campaign] => bing [campaign] => facebook
)
我试过这个:
$_SESSION['campaign'][] = $campaign;
它给我一个错误:致命错误:未捕获错误:[]字符串不支持运算符。堆栈跟踪:#0{main}抛出
您能给我举一个例子,说明如何在变量$\u会话
的数组中插入和存储1个以上的数据吗
编辑:当我尝试此操作时:
while ($rows = mysqli_fetch_array($results, MYSQLI_NUM))
{
$_SESSION['campaign'] = array($rows);
)
我也尝试过这个:
$link = mysqli_connect('localhost', 'mydbusername', 'mydbpassword', 'mydbname');
$campaign_db = "SELECT campaign_name FROM campaign WHERE username = 'myusername'";
if($stmt = mysqli_prepare($link, $campaign_db))
{
// Set parameters
$param_username = $_SESSION['username'];
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt))
{
// Bind variables to the prepared statement as parameters
mysqli_stmt_execute($stmt);
$results = mysqli_stmt_get_result($stmt);
while ($rows = mysqli_fetch_array($results, MYSQLI_NUM))
{
foreach ($rows as $campaign)
{
$_SESSION['campaign'] = $campaign;
}
}
}
print_r($_SESSION);
// Close statement
mysqli_stmt_close($stmt);
}
while ($rows = mysqli_fetch_array($results, MYSQLI_NUM))
{
foreach ($rows as $campaign)
{
$_SESSION['campaign'] = array($campaign);
}
)
它仍然给了我这个:
[campaign] => Array
(
[0] => facebook
)
您必须已将
$\u会话['campaign']
初始化为代码中某个字符串。无论你在哪里做,你都需要把它改成
$_SESSION['campaign'] = array('string value')
或者,如果它是一个空字符串,那么只需使用array()
,就可以使用
$_SESSION['campaign'][] = $campaign;
在循环中。您的“应该是:”不是有效数组,键必须是unique@IdontDownVote那么我应该使用什么呢?像nick shows belowI这样的数字键已经尝试过了,但是当我尝试这个
[0]=>facebook
会话['campaign']=array($campaign)时,它给了我这个$\代码>此代码对sql注入开放。使用prepare();您应该使用一个。谢谢您,但是当我在循环中尝试此操作时:$\u SESSION['campaign']=array($campaign)代码>,它给我这个[0]=>facebook
。有什么想法吗?@RobertJones您需要使用$\u SESSION['campaign']=array()代码>在循环外部,然后在循环内部使用$\u会话['campaign'][]=$campaign代码>哦,我没有意识到我需要使用$\u SESSION['campaign']=array()代码>在循环之外,因此当我插入$\u会话['campaign'][]=$campaign代码>在循环内部,它工作得很好。非常感谢您的帮助,现在问题已经解决了。太好了。很高兴我能帮忙。