Mysql 在SQL表中创建索引显示未定义索引
我使用下面的代码创建了一个表。表被创建,但显示了警告Mysql 在SQL表中创建索引显示未定义索引,mysql,sql,Mysql,Sql,我使用下面的代码创建了一个表。表被创建,但显示了警告 No index defined! 我使用以下SQL命令创建表 CREATE TABLE IF NOT EXISTS `test` ( `path` varchar(50) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 我使用以下PHP代码将多个图像路径插入数据库,但每个路径都存储在新行中。如何在SQL表中存储在单行中 if ($_FILES) { $upload = new Uplo
No index defined!
我使用以下SQL命令创建表
CREATE TABLE IF NOT EXISTS `test` (
`path` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我使用以下PHP代码将多个图像路径插入数据库,但每个路径都存储在新行中。如何在SQL表中存储在单行中
if ($_FILES) {
$upload = new Upload_Rename();
$destination = 'upload';
$paths=$upload->multiple_files($_FILES['myfile'], $destination);
//Fill this with correct information
$mysql_hostname = "";
$mysql_user = "";
$mysql_password = "";
$mysql_database = "";
$tbl_name="";
$pathfield_name='path';
//
$mysql= new mysqli($mysql_hostname,$mysql_user,$mysql_password,$mysql_database);
foreach($paths as $path){
$query='INSERT INTO `'.$tbl_name.'` (id, `'.$pathfield_name.'`) VALUES ("'.$mysql- >escape_string($path).'");';
$mysql->query($query);}
$mysql->close();
}
?>
<form method="post" enctype="multipart/form-data">
<?php for ($i = 0; $i < 10; $i++): ?>
file: <input type="file" name="myfile[]"><br>
<?php endfor; ?>
<input type="submit">
if($\u文件){
$upload=新上传_重命名();
$destination='upload';
$path=$upload->多个_文件($_文件['myfile'],$destination);
//请填写正确的信息
$mysql_hostname=“”;
$mysql_user=“”;
$mysql_password=“”;
$mysql_database=“”;
$tbl_name=“”;
$pathfield_name='path';
//
$mysql=newmysqli($mysql\u主机名,$mysql\u用户,$mysql\u密码,$mysql\u数据库);
foreach($path作为$path){
$query='INSERT INTO`.$tbl_name.`(id,'.$pathfield_name.'`)值(“.$mysql->escape_string($path)。”);
$mysql->query($query);}
$mysql->close();
}
?>
文件:
您的表中应该有一个PK作为I字段,这对于查询/索引来说性能更好
CREATE TABLE IF NOT EXISTS `test` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`path` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
而且,路径只有50个字符,为什么您希望在一行中有多个路径?目的是什么 如何创建索引,我看不出有什么问题。介意向我们展示数据库中的其余内容吗?正如您所写,这只是一个警告,而不是错误。它只是说您没有指定索引。@user3853978请看您正在将(
id
,path
)插入到一个只有path
列的表中-这就是您的代码所说的。如何在一行中添加多个图像的文件路径您不应该这样做。一行-一个文件一个路径。SQL查询:如果不存在,则创建表test1
(id
INT UNSIGNED NOT NULL AUTO_INCREMENT,path
VARCHAR(50)NOT NULL)ENGINE=INNODB DEFAULT CHARSET=latin1 MySQL说:文档1075-表定义不正确;只能有一个自动列,必须将其定义为键。请向其中添加主键(id
)。如下所示:创建表IF NOT EXISTS test1(id INT UNSIGNED NOT NULL AUTO_INCREMENT,path VARCHAR(50)NOT NULL,主键(id
)ENGINE=INNODB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `test` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`path` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;