-2

问题是idstart并且end正在获取2里面的值updateLine。我可以在 Zend Studio 中调试代码时看到这一点。这是什么原因?

更新:我需要能够将字符串值解析为函数updateLine

include_once 'include/connect_db.php';

$id = '2230';
$start = '2012-10-02 11:36:13';
$end = '2012-10-02 11:36:13';

$size = count($id);
var_dump($size);

for($i = 0; $i < $size; $i++){
updateLine($id[$i], $start[$i], $end[$i]);
}

function updateLine($id, $start, $end){
    var_dump($id);
    var_dump($start);
    $sql = "UPDATE `Sequence` 
            SET start='" . $start . "', fin='" . $end . "' 
            WHERE id='" . $id . "'";    
    $result=execute_query($sql);
    var_dump($sql);
}
4

4 回答 4

2

运算符访问字符串的[]第 i 个字符。i为 0,因此这三个值分别为 2、2 和 2。

于 2012-10-02T09:52:47.667 回答
1

您正在尝试打电话updateLine($id[$i], $start[$i], $end[$i]),这完全很奇怪。只需在没有 for 循环和没有这样的索引的情况下调用它,updateLine($id, $start, $end)你就可以开始了。否则,如我的评论中所述,您只有一个字符串(=char 数组),并使用[]其他人提到的索引运算符逐个字符地访问字符。

只有当您计划在数组中存储不同的值时,$id = array("trololo", "blabla")您才应该像一开始那样迭代它们。

于 2012-10-02T09:57:32.627 回答
1

我刚刚测试过,以下代码没有错误:

$id = array('2230', '2245');
$start = array('2012-10-02 11:36:13', '2012-10-15 11:36:13');
$end = array('2012-10-02 11:36:23', '2012-10-15 11:36:23');

$size = count($id);
var_dump($size);

for($i = 0; $i < $size; $i++){
    updateLine($id[$i], $start[$i], $end[$i]);
}

function updateLine($id, $start, $end){
    $sql = "UPDATE `Sequence` 
            SET start='" . $start . "', fin='" . $end . "' 
            WHERE id='" . $id . "'";    
    $result=execute_query($sql);
}
于 2012-10-02T10:05:59.783 回答
-2

因为 $id, $start, $end 不是数组和数组访问非数组的结果几乎是出乎意料的结果

你必须使用这样的东西

$id = array('2230');
$start = array('2012-10-02 11:36:13');
$end = array('2012-10-02 11:36:13');

或删除 for 循环

于 2012-10-02T09:52:14.470 回答