使用php代码时出现MySQL服务器错误

使用php代码时出现MySQL服务器错误,php,mysql,Php,Mysql,MySQL查询给出了错误,但在我看来,data\u new中的表名和列与所写的相同 这是SQL错误: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“0573”、“cate-csir”、“NKN”)附近使用的正确语法” 插入命令中的$new_data[4]之后缺少一个”: ...'$new_data[4],'$new_data[5]'... ^ | here 请注意:MySQ

MySQL查询给出了错误,但在我看来,
data\u new
中的表名和列与所写的相同

这是SQL错误:

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“0573”、“cate-csir”、“NKN”)附近使用的正确语法”


插入命令中的$new_data[4]之后缺少一个

...'$new_data[4],'$new_data[5]'...
                ^
                |
               here

请注意:MySQL扩展很久以前就被弃用了,并且从v7开始从php中删除。请改用mysqli或pdo。

您有两个明显的错误,一个是语法错误,一个是逻辑错误

首先,在VALUES子句中的“
”$new_data[4]
之后缺少引号

第二,您只会在循环完成后发出您构建的最后一个查询。这只会将输入文件的最后一行插入数据库

<?php
    $fm = fopen('main.txt','r');

    // its also a good idea to check your  connection worked before proceeding with any more code
    $link = mysql_connect('localhost','root','');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    mysql_select_db('username'); 
    $count=0;

    while ($line = fgets($fm)) {
        $new_data=@split(':',$line);

        // a missing single quote after'$new_data[4]
        $query="INSERT INTO `data_new`  
                     (`directory`,`machineip`,`description`,
                      `state`,`status`,`instituteid`,
                      `category`,`project`) 
              VALUES ('$new_data[0]','$new_data[1]','$new_data[2]',
                      '$new_data[3]','$new_data[4]','$new_data[5]',
                       '$new_data[6]','$new_data[7]')";

        // and the query must be executed inside the loop 
        $result = mysql_query($query);

        if(!$result){
            die(mysql_error());
        }

    }

    //$result=@mysql_query($query);

    //if(!$result){
    //    die(mysql_error());
    //}

    fclose($fm);
?>

您收到的错误是什么?每次使用时,世界上某个地方都会有一只小猫被勒死。它已被弃用(在PHP7中永远消失),特别是如果您只是在学习PHP,请花费精力学习
PDO
数据库扩展。如果您没有抑制所有错误(
@
)然后,您可能会被告知错误是什么您只运行了一次代码,在循环整个文件之后,该代码实际上向数据库发出了一个查询
mysql\u query($query);
。DUH@RiggsFollyOP确实检查sql错误。仔细看,这里更像是运行
$result=@mysql\u查询($query)
仅在loop@RiggsFolly我没有调试整个代码。我回答了这个问题。我只是想帮你,这样你就可以给出一个完整的答案,而不仅仅是西方国家更快的枪Answer@RiggsFolly如果你认为其他人是错误的或不完整的,请提交你自己的答案。评论那些小的陈述没有帮助请理解为什么有些东西不起作用。有时候,我希望我也有一个登录错误……如果你想知道的话,我是监控mysql库使用情况的人,必须勒死所有的小猫。我担心我的理智,所以尽管这是神圣的,但还是停止使用mysql扩展吧!。@Jakumi哦,我发现了错误,一旦我完成了c请在您的评论中添加提示。谢谢
<?php
    $fm = fopen('main.txt','r');

    // its also a good idea to check your  connection worked before proceeding with any more code
    $link = mysql_connect('localhost','root','');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    mysql_select_db('username'); 
    $count=0;

    while ($line = fgets($fm)) {
        $new_data=@split(':',$line);

        // a missing single quote after'$new_data[4]
        $query="INSERT INTO `data_new`  
                     (`directory`,`machineip`,`description`,
                      `state`,`status`,`instituteid`,
                      `category`,`project`) 
              VALUES ('$new_data[0]','$new_data[1]','$new_data[2]',
                      '$new_data[3]','$new_data[4]','$new_data[5]',
                       '$new_data[6]','$new_data[7]')";

        // and the query must be executed inside the loop 
        $result = mysql_query($query);

        if(!$result){
            die(mysql_error());
        }

    }

    //$result=@mysql_query($query);

    //if(!$result){
    //    die(mysql_error());
    //}

    fclose($fm);
?>