【发布时间】:2016-10-16 03:30:51
【问题描述】:
出于演示目的,我需要使用 PHP 清空我的 ACCESS 格式“database.mdb”中的所有表,然后将所有 ID AUTO_INCREMENT 重置为 1,但我在重置 PRIMARY KEYS 时遇到问题。
重要的是我已经用 PHP 脚本完成了所有工作。
我试过了:
/* ConnString verso il database da compattare */
$oldConn="Provider=Microsoft.Jet.OLEDB.4.0;";
$oldConn.="Data Source=".$path.$olddb.";";
$oldConn.="Jet OLEDB:Database Password=$oldpass ;";
/* ConnString verso il nuovo database (compattato) */
$newConn="Provider=Microsoft.Jet.OLEDB.4.0;";
$newConn.="Data Source=".$path.$newdb.";";
$newConn.="Jet OLEDB:Database Password=$newpass ;";
$je=new COM("JRO.JetEngine") or die("Compact failed");
$je->CompactDatabase($oldConn,$newConn) ;
$je->Release() ;
$je= null ;
但我收到 CompactDatabase() 错误。
我也尝试过使用 PDO 连接:
$pdo->exec("ALTER TABLE tbl AUTO_INCREMENT = 1");
或
$s = $pdo->prepare("ALTER TABLE tbl MODIFY COLUMN ID INT(10) UNSIGNED AUTO_INCREMENT");
但我得到:Syntax error or access violation
还有其他方法吗?
【问题讨论】:
-
这段代码是如何连接到 PDO 的?
-
对不起,我连接的是 JRO,而不是 PDO。代码更新
-
我需要在 PHP 脚本中执行此操作。不适用于 ASP,也不适用于 Microsoft Office Access 可执行文件。
标签: php ms-access auto-increment