小编Ben*_*ine的帖子

CakePHP数据库连接"Mysql"丢失,或无法创建

关于这一点还有其他一些帖子,但没有一个答案似乎对我有用.

当我导航到本地计算机上的CakePHP页面时,出现一个错误:

Cake无法连接到数据库.数据库连接"Mysql"丢失或无法创建.

当我在home.ctp中运行这个有用的代码时,我收到以下响应:

错误!:SQLSTATE [42000] [1049]未知数据库'test'

但是,我Users/Ben/Sites/myapp/app/Config/database.php看起来像这样(我将MAMP设置为在Users/Ben/Sites中查找文档根目录):

<?php
class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'Ben',
        'password' => 'mypass',
        'database' => 'CV',
    );
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个Ben用密码调用的mysql用户,mypass并在其CV下创建了一个名为的数据库.而且,我无法在test任何地方找到数据库.救命?

php mysql macos mamp cakephp

32
推荐指数
7
解决办法
6万
查看次数

make python等待存储过程完成执行

我有一个python脚本使用pyodbc来调用MSSQL存储过程,如下所示:

cursor.execute("exec MyProcedure @param1 = '" + myparam + "'")
Run Code Online (Sandbox Code Playgroud)

我在循环中调用这个存储过程,我注意到有时,在最后一次执行完程序之前,会再次调用该过程.我知道这个,因为如果我添加这条线

time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

在执行行之后,一切正常.

有没有更优雅,更省时的方式来说,"睡觉直到执行完毕"?

更新(Divij的解决方案):此代码目前不适用于我:

from tornado import gen
import pyodbc

@gen.engine
def func(*args, **kwargs):
    # connect to db
    cnxn_str = """
    Driver={SQL Server Native Client 11.0};
    Server=172.16.111.235\SQLEXPRESS;
    Database=CellTestData2;
    UID=sa;
    PWD=Welcome!;
    """
    cnxn = pyodbc.connect(cnxn_str)
    cnxn.autocommit = True
    cursor = cnxn.cursor()
    for _ in range(5):
        yield gen.Task(cursor.execute, 'exec longtest')

    return

func()
Run Code Online (Sandbox Code Playgroud)

python sql sql-server stored-procedures pyodbc

9
推荐指数
2
解决办法
5515
查看次数

docker run与已激活的conda环境交互

我想创建一个 docker 映像,以便当您以交互方式运行它时,conda 环境已经激活。

当前状态:

docker run -it my_image
(base) root@1c32ba066db2:~# conda activate my_env
(my_env) root@1c32ba066db2:~#
Run Code Online (Sandbox Code Playgroud)

期望的状态:

docker run -it my_image
(my_env) root@1c32ba066db2:~#
Run Code Online (Sandbox Code Playgroud)

更多信息:

在我的 Dockerfile 中,我包含了RUN安装 conda、创建环境和激活环境所需的所有命令。相关部分转载如下。

SHELL [ "/bin/bash", "--login", "-c" ]

...

# Install miniconda.
ENV CONDA_DIR $HOME/miniconda3
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
    chmod +x ~/miniconda.sh && \
    ~/miniconda.sh -b -p $CONDA_DIR && \
    rm ~/miniconda.sh
# Make non-activate conda commands available.
ENV PATH=$CONDA_DIR/bin:$PATH
# Make conda activate command available from /bin/bash …
Run Code Online (Sandbox Code Playgroud)

docker conda dockerfile

7
推荐指数
1
解决办法
2685
查看次数

更改同一查询中的多个列是否更快?

在一个查询中添加或删除多个列是否更快,而不是为每个列执行查询?例如,是这样的:

ALTER TABLE t2 DROP COLUMN c, DROP COLUMN d;
Run Code Online (Sandbox Code Playgroud)

比这快吗?

ALTER TABLE t2 DROP COLUMN c;
ALTER TABLE t2 DROP COLUMN d;
Run Code Online (Sandbox Code Playgroud)

mysql sql alter-table

6
推荐指数
2
解决办法
2441
查看次数

将零置于数字前面,使其成为4位数

我有四个或更少的数字,例如812197.我喜欢把0在这个数字面前,直到它是4个位数,如000800120197.在Python中最简单的方法是什么?什么是最"Pythonic"?

我可以做一系列if语句,如下所示:

if len(number) == 1:
    number = '000' + number
...
Run Code Online (Sandbox Code Playgroud)

但我觉得有一种更优雅的方式.

python

3
推荐指数
1
解决办法
1万
查看次数