【发布时间】:2013-08-11 10:04:15
【问题描述】:
我在安装 Codeigintor 时遇到以下错误,我似乎无法解决
Severity: Notice
Message: Array to string conversion
Filename: models/upload_model.php
Line Number: 69
这是我的代码:
foreach($data as $field){
$query = $this->db->get_where('Ushers', array('Date' => $field['Date']));
$result_array = $query->row_array();
if(empty($result_array)){
$query = $this->db->get_where('Ushers_teams', array('Team' => $field['Team']));
$ushers = $query->result_array();
$doublebooking = FALSE;
foreach($ushers as $usher){
$columns = $this->db->list_fields('worship');
$sql = "SELECT * FROM worship WHERE worship.Date LIKE '".$field['Date']."%'";
foreach($columns as $column){
$sql .= " OR worship.".(string)$column." = '".(string)$usher."'";
}
$result = $this->db->query($sql);
$usher = $result->result_array();
if(!isEmpty($usher)) $doublebooking = TRUE;
}
if(!$doublebooking){
$this->db->insert('ushers', $field);
print("Succesfully uploaded roster for week: ".$field['Date']);
}else{
print("Some ushers are already rostered onto the worship team on ".$field['Date']);
}
}else{
print("The is already a ushers roster for ".$field['Date'].".");
print("<br>");
}
我知道这不是解决问题的最佳方法,由于遇到同样的问题,这是最后的手段。 错误当前位于包含
的行$sql .= " OR worship.".(string)$column." = '".(string)$usher."'";
这可能是一个简单的问题,但我已经解决了 5 到 6 个小时。
【问题讨论】:
-
请格式化您的代码。
-
抱歉,我删除了格式化,试图让它停止告诉我我有未格式化的代码.. 之后忘记放回去了。
-
用
var_dump()转储变量$column和$usher以查看它们是否已经是字符串。如果它们是数组,简单地将它们转换为字符串并不是最好的解决方案。 -
不确定如何解释 var_dump,仍在计算 php 的部分内容:string(4) "Date" array(7) { ["Team"]=> string(1) "1" [" Head_Usher"]=> string(10) "Tahi Hoera" ["Usher1"]=> string(10) "Brian Boyd" ["Usher2"]=> string(9) "Elsa Boyd" ["Usher3"]=> string(12) "Annette Tate" ["Usher4"]=> string(11) "Rob Vaughan" ["Usher5"]=> string(12) "Hellen Chuma" }
-
我认为这意味着 usher 是一个数组。列怎么会是一个字符串“String(4)”Date“”,而引座员怎么会是一个数组?
标签: php arrays string codeigniter