为了账号安全,请及时绑定邮箱和手机立即绑定

关于mysqli语法的php文件导入错误

关于mysqli语法的php文件导入错误

PHP
Qyouu 2021-06-11 14:08:05
我正在尝试将文件导入到数据库中,无论我做了什么更改,我都会收到相同的错误。错误是——您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 1 行的“1”附近使用的正确语法似乎无法找到解决方案。我究竟做错了什么?谢谢 :)<?php$conn = mysqli_connect('localhost','root');if (!$conn) {    die(mysqli_error());} $db = mysqli_query($conn,"CREATE DATABASE IF NOT EXISTS monthly");if (mysqli_query($conn,$db)){    echo "Database created";} else {    echo "Database not created: " . mysqli_error($conn);}mysqli_select_db($conn, "monthly");$ct = mysqli_query($conn,"CREATE TABLE IF NOT EXISTS `month1`(`week1` INT(4) NOT NULL,`week2` INT(4) NOT NULL,`week3` INT(4) NOT NULL,`week4` INT(4) NOT NULL)");if (mysqli_query($conn,$ct)){    echo "Table created";} else {    echo "table not created: " . mysqli_error($conn);}$open = fopen('/xampp/htdocs/month1.txt','r');while (!feof($open)) {    $getTextLine = fgets($open);    $explodeLine = explode(',',$getTextLine, 4);    if(count($explodeLine) !=4) {        continue;    }    $week1 = $explodeLine[0];    $week2 = $explodeLine[1];    $week3 = $explodeLine[2];    $week4 = $explodeLine[3];    list($week1,$week2,$week3,$week4) = $explodeLine;    $qry = "insert into 'month1' ('week1','week2','week3','week4') values('$week1','$week2','$week3','$week4')" or die(mysqli_error());    mysqli_query($conn,$qry);}fclose($open);mysqli_close($conn);?>
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

请参阅添加的评论以解释我所做的修改


<?php

// this needs a password, I assume yours in blank

$conn = mysqli_connect('localhost','root', '');


if (!$conn) {

    die(mysqli_error());


// this creates a database

$status = mysqli_query($conn,"CREATE DATABASE IF NOT EXISTS monthly");


if ($status){

    echo "Database created";

} else {

    echo "Database not created: " . mysqli_error($conn);

}


mysqli_select_db($conn, "monthly");


$ct = mysqli_query($conn,"CREATE TABLE IF NOT EXISTS `month1`(

                        `week1` INT(4) NOT NULL,

                        `week2` INT(4) NOT NULL,

                        `week3` INT(4) NOT NULL,

                        `week4` INT(4) NOT NULL

                        )");

if ($ct){

    echo "Table created";

} else {

    echo "table not created: " . mysqli_error($conn);

}


$open = fopen('/xampp/htdocs/month1.txt','r');


while (!feof($open)) 

{

    $getTextLine = fgets($open);

    $explodeLine = explode(',',$getTextLine, 4);


    if(count($explodeLine) !=4) {

        continue;

    }

    $week1 = $explodeLine[0];

    $week2 = $explodeLine[1];

    $week3 = $explodeLine[2];

    $week4 = $explodeLine[3];


    list($week1,$week2,$week3,$week4) = $explodeLine;


    // Column and databse names are wrapped in backticks

    // Text data is wrapped in single quotes

    // integer data CAN be wrapped in single quote, but does not have to be

    $qry = "insert into `month1` (`week1`,`week2`,`week3`,`week4`) 

                        values($week1,$week2,$week3,$week4)" 

    // This is placing a query in a string variable 


    // so this die() is nonsense and anyway it meeds a parameter in the mysqli_error()

    // like this mysqli_error($conn)

    //   or die(mysqli_error());


    // this execues the query above

    mysqli_query($conn,$qry);


    // if you made the above line into 

    // $res = mysqli_query($conn,$qry);

    // you could check if it actually worked like this

    /*

    if ( !$res ) {

        mysqli_error($conn);

    }

    */


}

fclose($open);

mysqli_close($conn);

?>


查看完整回答
反对 回复 2021-06-13
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

我正在更改您代码上部的几行,请检查并比较,有一些小错误,例如


if (mysqli_query($conn,$db)) and if (mysqli_query($conn,$ct)){ 

 the above lines have no meaning.

请在该位置或您的位置添加以下代码。


<?php

$conn = mysqli_connect('localhost','root','');


if (!$conn) {

    die(mysqli_error());


$db = mysqli_query($conn,"CREATE DATABASE IF NOT EXISTS monthly");


if ($db){

    echo "Database created";

} else {

    echo "Database not created: " . mysqli_error($conn);


}


mysqli_select_db($conn, "monthly");


$ct = mysqli_query($conn,"CREATE TABLE IF NOT EXISTS `month1`(

`week1` INT(4) NOT NULL,

`week2` INT(4) NOT NULL,

`week3` INT(4) NOT NULL,

`week4` INT(4) NOT NULL

)");

if ($ct){

    echo "Table created";

} else {

    echo "table not created: " . mysqli_error($conn);


}


查看完整回答
反对 回复 2021-06-13
  • 2 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信