PHP-我需要一些帮助来发现错误

我创建了一个文件,该文件带有一些有用的PHP函数以用于SQL数据库,但是我在将记录插入SQL表中的代码有问题.
当我尝试执行此代码时,它显示如下:

Fatal error: Uncaught Error: Unsupported operand types in C:\xampp\htdocs\iterations_php_mysql.php:118 Stack trace: #0 C:\xampp\htdocs\prova.php(9): setRecord(Object(mysqli), ‘studenti’, Array, Array) #1 {main} thrown in C:\xampp\htdocs\iterations_php_mysql.php on line 118

这是函数($link是主机获取的链接,其中$link = mysqli_connect($host,$username);,$table是表名,$tableFields是包含字段名称的数组,$recordFields是一个包含新记录的字段的数组):

function setRecord($link, $table, $tableFields, $recordFields){

    $sql = "INSERT INTO ".$table." (";

    if(count($tableFields) == count($recordFields)) $n = $tableFields;
    else    return false;

    for($i=0; $i<$n; $i++){

        $sql = $sql . $tableFields[$i];
        if($i != $n-1){   $sql = $sql . ", ";}   //this is the line 118
    }

    $sql = $sql.") VALUES (";

    for($i=0; $i<$n; $i++){

        $sql = $sql.$recordFields[$i];
        if($i != $n-1)   $sql = $sql . ", ";
    }

    $sql = $sql.")";

    return mysqli_query($link, $sql);
}

解决方法:

$n = $tableFields

所以我猜$tableFields是一个数组吗?

如果是这样,则对数组执行以下操作是没有意义的:

if ($i != $n-1) ...

因为您不能对这样的数组进行算术运算.这样会更好:

if ($i != count($n)-2) ...

请注意,您必须减去2,因为数组从索引0开始.

但是我有一个更好的建议来简化您的代码:

代替所有这些:

for($i=0; $i<$n; $i++){
    $sql = $sql . $tableFields[$i];
    if($i != $n-1){   $sql = $sql . ", ";}   //this is the line 118
}

这样写:

$sql .= implode(", ", $tableFields);
上一篇:PHP mysqli_field_tell() 函数


下一篇:如何在24小时内将数据自动从mysql表中删除?