在MySQL中插入一个PHP数组,将表作为变量或动态表
我有一个php数组:在MySQL中插入一个PHP数组,将表作为变量或动态表,php,mysql,mysqli,mysql-insert-id,Php,Mysql,Mysqli,Mysql Insert Id,我有一个php数组: $cont_array = Array("613:m-ent:id=one","930:m-lk:id=one;x=180;y=79;which=1","1080:m-lev:id=one;"); 我想将它插入一个MySQL表,表名作为变量,比如$table\u name=“user1” 另外,我想用第一个“”:“”来打断每个数组元素。在执行我的php代码后,我只得到一个空表 我需要帮助。这是我的代码: <?php $connection = mysqli_conn
$cont_array = Array("613:m-ent:id=one","930:m-lk:id=one;x=180;y=79;which=1","1080:m-lev:id=one;");
我想将它插入一个MySQL表,表名作为变量,比如$table\u name=“user1”
另外,我想用第一个“”:“
”来打断每个数组元素。在执行我的php代码后,我只得到一个空表
我需要帮助。这是我的代码:
<?php
$connection = mysqli_connect('localhost','root','','prueba');
$cont_array = Array("613:m-ent:id=one","930:m-clk:id=one;x=180;y=79;which=1","1080:m-lev:id=one;");
$table_name = "user1";
$sql_1 = "DROP TABLE IF EXISTS `".$table_name."`;";
$sql_1 .= "CREATE TABLE `".$table_name."` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`usercod` varchar(20) NOT NULL DEFAULT '',
`pid` varchar(1000) NOT NULL DEFAULT '',
`name` varchar(1000) NOT NULL DEFAULT '',
`time` varchar(1000) NOT NULL DEFAULT '',
`all_act` varchar(1000) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;";
mysqli_multi_query($connection,$sql_1);
foreach ($cont_array as $row){
$break_e = explode(':', $row, 2);
$sql="INSERT INTO`".$table_name."` (usercode,pid,name,time,all_act) VALUES ("user","pid_value","user_name",'$break_e [0]','$break_e [1]');";
mysqli_query($connection,$sql);
}
?>
您的SQL语句下面似乎有问题检查
$sql = "INSERT INTO $table_name (usercod,pid,name,time,all_act) VALUES ('user','pid_value','user_name','".$break_e [0]."','".$break_e [1]."')";
您的create使用usercod
,但是insert使用usercode
。此外,如果您查看代码的显示,SQL中的引号是不正确的。在开发过程中,您应该在脚本中启用和。除了启用PHP错误,您还可以在mysqli_query
函数之后添加以下内容:mysqli_query($connection,$sql)或die(mysqli_error($connection))代码>否…但仍然不正确<代码>id
是自动增量
。请看一下OPs表模式。感谢您的回答Synapselndia。我替换了你的代码。然而,我还是得到了一张空桌子。考虑到表名修复,我的代码可以工作,但我需要将其作为变量。第一列是自动增量,所以我只需要插入六个变量。@EfrainNoa No…5个变量。