我在urbandictionary中编写了一个简单的翻译脚本:
import urllib.request
import bs4
def translate():
search=''
while(search!='!'):
search=input("Enter a word(! for exit): ")
if search=='!':
continue
search2=search.replace(' ','+')
urb_url='http://www.urbandictionary.com/define.php?term='+str(search2)
urban=urllib.request.urlopen(urb_url).read().decode('utf-8')
soup_urb = bs4.BeautifulSoup(urban)
try:
q2=soup_urb.find('div', class_="meaning").text
print("{0}: {1}".format(search,q2))
except AttributeError as e:
print("The word not found\n")
Run Code Online (Sandbox Code Playgroud)
现在我想保存搜索到的每个单词的结果以供使用,并且将来不再搜索。你的建议是什么?sqlite,以简单文本或其他解决方案保存。
我想知道如何获取 sqlite 表中的行/记录总数并将其分配给变量。我这样做了;
QSqlQuery query("SELECT COUNT(*) FROM class1_bills");
Run Code Online (Sandbox Code Playgroud)
但问题是,如何将结果分配给变量?我试过;
int rows = query.seek(0);
Run Code Online (Sandbox Code Playgroud)
和;
int rows = query.value(0).toInt();
Run Code Online (Sandbox Code Playgroud)
是的,我知道这样做只会访问表中字段位置0处的记录 。但 Qt 的查询方法似乎仅用于访问字段位置的特定记录。如果我错了请纠正我。那么如何获得表中的总行数呢?
我有一个远程 SQL 数据库(即存储在服务器中的数据库)。我正在开发一个 Android 应用程序,它定期建立连接以使用 SQLite 将所有远程数据库的表(及其内容)复制到本地数据库。
Android SDK 中是否有任何标准化方法来执行此操作?
我所经历的:
我考虑过以 JSON 格式请求远程数据库的内容,然后在 Android 中解析该 JSON 代码,然后使用 SQLite 将其包含在本地数据库中。不知道这对于大量数据来说有多有效,也不知道是否存在更好(不那么痛苦)的方法。
我有下表:
CREATE TABLE group_members(id integer primary key AUTOINCREMENT, group_id integer, member_id integer, FOREIGN KEY (member_id) REFERENCES users(id));
Run Code Online (Sandbox Code Playgroud)
我试图通过从表中group_members选择 的值,然后传入 的值来将记录插入到表中。group_idusermember_id
insert into group_members (group_id, member_id)
values (select id from users where code ='12345' and location='multiple', 281);
Run Code Online (Sandbox Code Playgroud)
其中 281 是我要传入的会员 ID。
但我收到以下错误消息:
错误:“选择”附近:语法错误
你能为我指出正确的方向吗?
我正在将 Django 模型用于 SQLite 数据库。
我定义了 CharField 主键(例如属性的名称A),但同步的物理数据库显示Django另一个主键rowid而不是A。
我尝试删除表格并重新同步几次,但仍然相同。
为什么?
class TestTable(models.Model):
A = models.CharField(max_length=10, primary_key=True, db_column='A')
Run Code Online (Sandbox Code Playgroud)
- - - - - - - - - - - 编辑 - - - - - - - - - - - -
Django版本是1.8.3
当我尝试运行我的应用程序时,它崩溃了。
\n\nE/SQLiteLog\xef\xb9\x95 (1) no such column: nmb\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的数据库代码
\n\nprivate static final String DB_NAME = "mydb";\nprivate static final int DB_VERSION = 4;\nprivate static final String DB_TABLE = "mytab";\n\npublic static final String COLUMN_ID = "_id";\npublic static final String COLUMN_IMG = "img";\npublic static final String COLUMN_TXT = "txt";\npublic static final String COLUMN_NMB = "nmb";\n\nprivate static final String DB_CREATE =\n "create table " + DB_TABLE + "(" +\n COLUMN_ID + " integer primary key autoincrement, " +\n COLUMN_IMG + " integer, …Run Code Online (Sandbox Code Playgroud) 问题是:如果我使用 { } 作为更新命令,如下所示:
package require sqlite3
fileRepo eval {UPDATE uploads SET $col=$data WHERE rowid=$id}
Run Code Online (Sandbox Code Playgroud)
我无法替换大括号内的任何变量。这一切都必须进行硬编码。
但是,如果我使用“”作为更新命令,如下所示:
fileRepo eval "UPDATE uploads SET $col='$data' WHERE rowid=$id"
Run Code Online (Sandbox Code Playgroud)
我可以替换双引号内的变量,但我必须使用 ' ' 才能输入带空格的数据,以便 sql 将其视为一个输入。如果我不这样做,如果我发送类似的内容,我会收到错误
$data = "合法堆栈"
因为它有一个空格,所以 sql 会被单词“Stack”阻塞,除非它放在单引号内
所以...
如果我将此数据发送到更新命令:
$col = description
$data = "Stack's Pet"
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
靠近“s”:执行“fileRepo eval”UPDATE uploads SET $col='$data' WHERE rowid=$id”时出现语法错误...
因此,鉴于这些规则,我看不出有什么办法可以成功地将单引号或撇号传递给更新命令。有其他方法可以做到这一点吗?
谢谢!
如何通过列号/索引/位置而不是列名查询选择列?
到目前为止这不起作用:
SELECT 1,2,3,4,5,6,7 from table_1
Union
SELECT 1,2,3,4,5,6,7 from table_2
Run Code Online (Sandbox Code Playgroud) 我第一次将 SQLite 与 PHP 结合使用。我正在尝试从 获取数据contact.s3db。但是我收到这样的错误:Fatal error: Uncaught exception 'PDOException' with message 'invalid data source name' in...
这是我的代码:
$dir = 'contact.s3db';
$dbh = new PDO($dir) or die("cannot open the database");
$query = "SELECT * FROM person";
foreach ($dbh->query($query) as $row)
{
echo $row[1] . " " . $row[2] . "<br />";
}
Run Code Online (Sandbox Code Playgroud) 目前,我正在从数据库中手动删除旧数据(超过 90 天的旧数据)sqlite,因此以下是当前执行的步骤。那么伙计们是否可以使用 Bash 脚本来完成这项工作?
1. cd /opt/db (my database location)
2. ls -lSh | head -n30 (sorting from top highest size .db files and notes all .db names)
3. sqlite3 test1.db (select database)
4. delete from tbl_outbox where time<='2016-02-10 00:00:00'; (delete data older more than 90 days)
5. vacuum;
Run Code Online (Sandbox Code Playgroud)
有20多个.db文件。所以我再一一执行上面的步骤 3 到 5,如下所示
sqlite3 test2.db
delete from tbl_outbox where time<='2016-02-10 00:00:00';
vacuum;
Run Code Online (Sandbox Code Playgroud)
你能帮我创建 bash 脚本来完成这项任务吗?
谢谢