Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 继续把我弄出去_Php_Continue - Fatal编程技术网

Php 继续把我弄出去

Php 继续把我弄出去,php,continue,Php,Continue,为什么我的第二个if从未被执行?这句话似乎能让我摆脱困境。我试过了,但没有成功 foreach($columns as $i=>$column) { // Check if column exists $sql = "SELECT '$column' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$database' AND TABLE_NAME

为什么我的第二个if从未被执行?这句话似乎能让我摆脱困境。我试过了,但没有成功

        foreach($columns as $i=>$column) 
        {
            // Check if column exists
            $sql = "SELECT '$column' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$database' AND TABLE_NAME = '$strTable'";
            if(mysqli_real_query($link, $sql)) 
            {
                echo 'Column '.$column.' was created! <br>';
                continue; 
            }
            $sql = "alter table '$strTable' add column '$column' varchar (30)"; 
            if(mysqli_real_query($link, $sql)) 
            {
                echo 'Column '.$column.' was created! <br>';
            }
            $cols .= $column.','; 
        }

您没有测试查询是否找到任何行。mysqli_real_查询只要没有出错就成功,但这并不意味着查询匹配了任何内容。您需要获得查询的结果

此外,您只是检查表是否存在,而不是检查表中是否存在该列

继续跳过循环体的整个其余部分。当找不到列时,应该使用else执行第二个块

如果要使用结果,请使用mysqli_查询。否则,需要先调用mysqli_use_result和mysqli_store_result;看


continue意味着开始循环的下一次迭代,跳过正文的其余部分。只需删除continue。其目的是不添加已存在的列。警告:mysqli_num_rows预期参数1为mysqli_result,bool给定$sql=从信息_SCHEMA.COLUMNS中选择1,其中表_SCHEMA='$database',表_NAME='$strTable',列_NAME='$COLUMN';
foreach($columns as $column) 
{
    // Check if column exists
    $sql = "SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS 
            WHERE TABLE_SCHEMA = '$database' AND TABLE_NAME = '$strTable' AND COLUMN_NAME = '$column'";
    $result = mysqli_query($link, $sql);
    if(mysqli_num_rows($result) > 0) 
    {
        echo 'Column '.$column.' already exists! <br>';
    } else {
        $sql = "alter table '$strTable' add column '$column' varchar (30)"; 
        if(mysqli_real_query($link, $sql)) 
        {
            echo 'Column '.$column.' was created! <br>';
        }
    }
    $cols .= $column.','; 
}