首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的数组不插入我的数据库?

为什么我的数组不插入我的数据库?
EN

Stack Overflow用户
提问于 2018-09-20 19:55:39
回答 1查看 65关注 0票数 0

我有这段代码,出于某种原因,它不会被插入到我的数据库中。它基本上是接受一个数组,将其转换为一个字符串,然后提交值。(如果您需要我编辑以显示我的全部代码,我将这样做)

下面的代码有问题

代码语言:javascript
复制
$array = array($RaceNumber,$Track,$Num,$HorseName,$Odds,$Color,$Jockey,$Trainer,$PostTime,$Course,$RaceDistance,$Win,$Place,$Show);

for ($a=0; $a<$Num; $a++) {
$dataArray=array($RaceNumber[$a],$Track[$a],$Num[$a],$HorseName[$a],$Odds[$a],$Color[$a],$Jockey[$a],$Trainer[$a],$PostTime[$a],$Course[$a],$RaceDistance[$a],$Win[$a],$Place[$a],$Show[$a]);

$dataArray--;
for ($j=0; $j<$Num; $j++) {

    $RaceNumber=$dataArray[0];
    $Track=$dataArray[1];
    $Num=$dataArray[2];
    $HorseName=$dataArray[3];
    $Odds=$dataArray[4];
    $Color=$dataArray[5];
    $Jockey=$dataArray[6];
    $Trainer=$dataArray[7];
    $PostTime=$dataArray[8];
    $Course=$dataArray[9];
    $RaceDistance=$dataArray[10];
    $Win=$dataArray[11];
    $Place=$dataArray[12];
    $Show=$dataArray[13];
    $sql="INSERT INTO `$Date` (RaceNumber,Track,HorseNum,HorseName,Odds,Color,JockeyName,TrainerName,PostTime,Course,RaceDistance,Win,Place,Show) VALUES ('$RaceNumber','$Track','$Num','$HorseName','$Odds','$Color','$Jockey','$Trainer','$PostTime','$Course','$RaceDistance','$Win','$Place','$Show')";
    echo $sql;
    mysqli_query($query2,$sql);
    }
  }

当我回音我的$sql

INSERT INTO 2018-09-20 (RaceNumber,Track,HorseNum,HorseName,Odds,Color,JockeyName,TrainerName,PostTime,Course,RaceDistance,Win,Place,Show) VALUES ('1','FingerLakes','1','','','Red','','','','Dirt','','none','none','none')

但是当我进行查询时,它并不是插入到数据库中。

创建datatable的代码的一部分

代码语言:javascript
复制
<?php 
if(isset($_POST['submit'])) {

    $Date = $_POST['date'];

    $sql = "CREATE TABLE IF NOT EXISTS `$Date` (
    `Id` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `RaceNumber` varchar(255) NOT NULL,
    `Track` varchar(255) NOT NULL,
    `HorseNum` varchar(255) NOT NULL,
    `HorseName` varchar(255) NOT NULL,
    `Odds` varchar(255) NOT NULL,
    `Color` varchar(255) NOT NULL,
    `JockeyName` varchar(255) NOT NULL,
    `TrainerName` varchar(255) NOT NULL,
    `PostTime` varchar(255) NOT NULL,
    `Course` varchar(255) NOT NULL,
    `RaceDistance` varchar(255) NOT NULL,
    `Win` varchar(255) NOT NULL,
    `Place` varchar(255) NOT NULL,
    `Show` varchar(255) NOT NULL
) ENGINE=MyISAM  DEFAULT CHARSET=utf8"
;
$query2 = mysqli_connect('localhost','root','','Races');   

$z= mysqli_query($query2, $sql) or die("Table already exist.. please try again");
echo "Your Table ".$Date." is successfully created <br/>";
$RaceNum = $_POST['RaceNum'];
$i=1;

我在错误日志中收到

2018-09-20 16:00:59 9444 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'max_value' at position 4 to have type varbinary(255), found type varchar(255).

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-20 20:11:59

您正在使用一个名为Show的列,它是mysql中的一个保留关键字,向它添加反引号,插入查询应该可以工作。

值得注意的是,您不应该用数字和连字符来命名您的表。

这里是保留关键字的完整列表:https://dev.mysql.com/doc/refman/8.0/en/keywords.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52432404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档