【问题标题】:Trying to insert data from one table to another in php MYSQL [closed]试图在php MYSQL中将数据从一个表插入另一个表[关闭]
【发布时间】:2013-11-23 18:04:30
【问题描述】:

无论我做什么,都会出现语法错误,我无法弄清楚为什么?

$sn= "INSERT INTO [Drive Errors](Serial Number) SELECT [Serial Number] FROM [Drive List] ORDER BY [Position]ASC";
odbc_exec($con,$sn);

谢谢,代码有效,但现在当我插入序列号数据时,所有以前的数据都被删除了。有什么建议么?

$sn= "INSERT INTO [Drive Errors]([Serial]) SELECT [Serial Number] FROM [Drive List] ORDER BY [Position]ASC";
odbc_exec($con,$sn);

//Selecting table(de) and row(pos) need it in brackets
$sql= "SELECT * FROM [Drive Errors] ORDER BY [Position]ASC"; 

$rs=odbc_exec($con,$sql);
if (!$rs)
{echo("Error");} 

【问题讨论】:

  • 这是您运行的准确查询吗?
  • 数据库是ms-access数据库
  • 那么为什么这个问题被标记为“mysql”和“odbc”?您是否使用 Access 链接表来操作 MySQL 数据库中的表?

标签: php mysql ms-access odbc


【解决方案1】:

您也需要在第一个 Serial Number 周围加上方括号:

$sn= "INSERT INTO [Drive Errors]([Serial Number]) SELECT [Serial Number] FROM [Drive List] ORDER BY [Position]ASC";

圆括号是 INSERT 语句语法的一部分;方括号是用空格或有趣字符分隔列名的地方,或者是 Access SQL 中的保留字。

【讨论】:

  • 谢谢,代码有效,但现在当我插入序列号数据时,所有以前的数据都被删除了。有什么建议么? $sn= "INSERT INTO [Drive Errors]([Serial]) SELECT [Serial Number] FROM [Drive List] ORDER BY [Position]ASC"; odbc_exec($con,$sn); //选择表(de)和行(pos) $sql= "SELECT * FROM [Drive Errors] ORDER BY [Position]ASC"; $rs=odbc_exec($con,$sql); if (!$rs) {echo("Error");} $test = odbc_fetch_into($rs ,$result); if(!$test) {echo "失败";}
  • @user3025553 请点击您问题底部的“编辑”按钮,并在此处附加您的更新信息。如您所见,将代码放在 cmets 中效果并不好(因为它本来就不应该放在 cmets 中)。
猜你喜欢
  • 2013-04-25
  • 2012-12-05
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-11
相关资源
最近更新 更多