我將三個 SQLite 檔案粘貼到D:/Server/sqlite基于 Windows 的本地 Apache 服務器中,sqlite3由.test.sqlite.open --new test.sqlite
我正在嘗試通過以下 PHP 代碼創建一個表并插入資料:
$pdo = new PDO('sqlite:D:\Server\sqlite\test.sqlite');
$pdo->exec('CREATE TABLE IF NOT EXISTS `tablename` (`id` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` varchar(255) NOT NULL)');
$insert = $pdo->prepare("INSERT INTO tablename (id, name) VALUES (1, 'Test')");
$insert->execute();
$pdo->lastInsertId();
但我得到錯誤:
致命錯誤:未捕獲的錯誤:在 bool 上呼叫成員函式 execute()
而且test.sqlite還是空的。怎么了?使用 MySQL,這可以正常作業。
uj5u.com熱心網友回復:
該CREATE TABLE陳述句無效,因此沒有創建表,這意味著該INSERT陳述句失敗。
在 SQLite 中定義整數自增列的正確語法是:
id INTEGER PRIMARY KEY
或者:
id INTEGER PRIMARY KEY AUTOINCREMENT
與您的代碼的區別是:
- 資料型別的使用
INTEGER(與關鍵字一起使用時,其他任何內容都會引發錯誤,AUTOINCREMENT或者如果缺少該關鍵字,則不會創建自動增量列) - 在關鍵字之后使用關鍵字
AUTOINCREMENT(而不是AUTO_INCREMENT在 MySql 中有效)PRIMARY KEY
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/516964.html
上一篇:填充選項值
