簡體   English   中英

MySql語法錯誤-列具有名稱數字

[英]MySql syntax Error - Columns have numbers for name

我有以下mysql語句:

INSERT INTO rates_try (`Weight`, `length`, `height`, `Min`, `100`, `200`, `300`) VALUES (1000,0.1,2.3,1,2,3,4);

給出錯誤:

沒有創建行。 檢查SQL語法中是否有錯誤;請檢查錯誤。 檢查對應於你的MySQL服務器版本的行1插入到附近使用“insertquery” INTO rates_try正確的語法手冊( WeightlengthheightMin100200300 )VALUES(1500,2.31,3.5,1, 0,0,0);

表結構為:

rates_try ( `Weight` int(11), 
            `length` double, 
            `height` double, 
            `Min` double, 
            `100` double, 
            `200` double, 
            `300` double )

我不確定語法有什么問題,我知道它很可能與列是數字有關,如果這是導致它的問題,則我必須在名稱中添加一些內容,因此它們不僅是數字,而且我想先檢查一下情況是否如此。

創建該語句的php代碼

$insertquery = "INSERT INTO rates_{$tablename} (`Weight`, `length`, `height`, `Min`";
                foreach ($titles as $title){
                    if (empty($title) ){

                    }else{
                        $insertquery .= ", `" . $title . "`";
                        $counter++;
                    }
                }
                $insertquery .=  ") VALUES (".$row['weight'].",".$row['cbm_min'].",".$row['cbm_max'].",".$value;
                $a = 0;
                while ($a < $counter){
                    $newvalue = $array[$a][$i];
                    if (empty($newvalue)){
                        $newvalue = 0;
                    }
                    $insertquery .= ",". $newvalue;
                    $a++;
                }
                $insertquery .= ");";

                echo $insertquery. "<br/>";
                $queryResult = mysqli_query($con, insertquery);

$queryResult = mysqli_query($con, insertquery);

現在可以看到嗎?

insertquery前面缺少$

這很有趣,因為您實際上遵循了使用反引號將列名括起來的規則-根據我剛剛檢查文檔 ,您的列名確實有效:

標識符可以以數字開頭,但除非加引號,否則不能僅由數字組成。

值得注意的是,盡管Windows上的MySQL標識符不區分大小寫,但您會在Linux上發現它們是區分大小寫的。 您確定沒有在某處錯過大寫或小寫嗎? 您的第一列使用大寫字母開頭,但其他都沒有。

但是,我要說的是,使用必須反引號的列名通常是一個壞主意。 每次引用時都使用不需要特別照顧的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM