GVKun编程网logo

Python和MySQLdb:替换表会导致语法错误(mysql替换所有表中数据)

17

对于Python和MySQLdb:替换表会导致语法错误感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解mysql替换所有表中数据,并且为您提供关于c#–为什么nullable上的模式匹配会导

对于Python和MySQLdb:替换表会导致语法错误感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解mysql替换所有表中数据,并且为您提供关于c# – 为什么nullable上的模式匹配会导致语法错误?、C#,MySQL,ADO.NET,分隔符导致语法错误、Centos 7.4 安装ipython和mysql-python遇到的问题、MySQL DECLARE中的SELECT INTO变量会导致语法错误?的宝贵知识。

本文目录一览:

Python和MySQLdb:替换表会导致语法错误(mysql替换所有表中数据)

Python和MySQLdb:替换表会导致语法错误(mysql替换所有表中数据)

我需要不时动态地更改表和变量,因此我编写了这样的python方法:

    selectQ ="""SELECT * FROM  %s WHERE %s = %s;"""     self.db.execute(selectQ,(self.table,self.columnSpecName,idKey,))    return self.db.store_result()

但是,这导致语法错误异常。我尝试对其进行调试,因此我将变量打印在方法中,然后手动将其填充,并且可以正常工作。所以我不确定我在做什么错?

是因为我尝试使用表的替代品吗?

另外,我该如何调试mysqldb以便将替换查询打印为字符串?

答案1

小编典典

DB API中的参数替换仅适用于值-不适用于表或字段。您将需要使用普通的字符串替换:

selectQ ="""SELECT * FROM  %s WHERE %s = %%s;""" % (self.table,self.columnSpecName)self.db.execute(selectQ,(idKey,))return self.db.store_result()

请注意,值占位符有一个double-%这是初始字符串替换将其保留的位置。

c# – 为什么nullable上的模式匹配会导致语法错误?

c# – 为什么nullable上的模式匹配会导致语法错误?

我喜欢在可空的int上使用模式匹配,即int?:
int t  = 42;
object tobj = t;    
if (tobj is int? i)
{
    System.Console.WriteLine($"It is a nullable int of value {i}");
}

但是,这会导致以下语法错误:

> CS1003: Syntax error,‘;’,
> CS1525: Invalid expression term ‘)’,
> CS0103: The name ‘i’ does not exist in the current context

‘i)’标有红色波浪线.

使用旧运算符时表达式编译为:

int t = 42;
object tobj = t;    
if (tobj is int?)
{
    System.Console.WriteLine($"It is a nullable int");
}


string t = "fourty two";
object tobj = t;
if (tobj is string s)
{
    System.Console.WriteLine($@"It is a string of value ""{s}"".");
}

也按预期工作.

(我正在使用c#-7.2并使用.net-4.7.1和.net-4.6.1进行测试)

我认为它与运算符优先级有关.因此,我尝试在几个地方使用括号,但这没有帮助.

为什么会出现这些语法错误,如何避免这些错误呢?

解决方法

各种形式的类型模式:x是T y,case T y等,always fails to match when x is null.这是因为 null doesn’t have a type,所以问“这是这种类型的null吗?”是一个毫无意义的问题.

因此t是int? i或t是Nullable< int>我作为一个模式没有任何意义:要么t是一个int,在这种情况下t是int我会匹配,或者它是null,在这种情况下没有类型模式可以导致匹配.

那就是t为int的原因? i或t是Nullable< int>我不是,也可能永远不会得到编译器的支持.

使用t时从编译器获得其他错误的原因是int?我是因为,例如,t是int? “它是一个int”:“这里没有int”是有效的语法,因此编译器对你的使用尝试感到困惑?对于这种情况下的可空类型.

至于如何避免它们,明显(尽管可能不是很有帮助)的答案是:不要使用可空类型作为类型模式中的类型.更有用的答案需要您解释为什么要尝试这样做.

C#,MySQL,ADO.NET,分隔符导致语法错误

C#,MySQL,ADO.NET,分隔符导致语法错误

我有C#代码循环.sql文件并执行其中的内容来设置数据库.

一个.sql文件基本如下:

DROP PROCEDURE IF EXISTS myProc;

DELIMITER $$

CREATE PROCEDURE myProc()
BEGIN
-- procedure stuff goes here
END $$

DELIMITER ;

CALL myProc();

当我将它输入到MySQL查询浏览器的脚本窗口时,它会一遍又一遍地运行,就像人们希望的那样.

但是,如果我将字符串放入我的IDbCommand并执行它…

connection.open(); // An IDbConnection
IDbTransaction transaction = connection.BeginTransaction();
using (IDbCommand cmd = connection.CreateCommand())
{
    cmd.Connection = connection;
    cmd.Transaction = transaction;
    cmd.CommandText = line;
    cmd.CommandType = CommandType.Text;

    try
    {
        cmd.ExecuteNonQuery();
    }
    catch (sqlException ex)
    {
        transaction.Rollback();
        return false;
    }
}

transaction.Commit();
connection.Close();

……我得到了可怕的例外1064 ……

You have an error in your sql Syntax; check the manual that
corresponds to your MysqL server version for the right Syntax to use
near ‘DELIMITER $$CREATE PROCEDURE myProc() BEGIN…

所以,问题是……为什么MysqL让我这样做没有问题,但是当我尝试从C#运行它时,它失败了?当然第二个问题是我应该如何修复它.

解决方法

我想你要找的是: “Bug #46429: use DELIMITER command in MySql.Data.MySqlClient.MySqlScript”

Centos 7.4 安装ipython和mysql-python遇到的问题

Centos 7.4 安装ipython和mysql-python遇到的问题

pip安装ipython报错记录
#pip install ipython==5.5.0

Collectingipython==5.5.0
Downloadinghttp://mirrors.aliyun.com/pypi/packages/08/2c/6285504003b4eadce5540f3ee3adc081468b26723f3eef07d9d5d7d97ed8/ipython-5.5.0-py2-none-any.whl(758kB)
100%|████████████████████████████████|768kB3.9MB/s
Requirementalreadysatisfied:pygmentsin/usr/lib64/python2.7/site-packages(fromipython==5.5.0)
Requirementalreadysatisfied:setuptools>=18.5in/usr/lib/python2.7/site-packages(fromipython==5.5.0)
Requirementalreadysatisfied:backports.shutil-get-terminal-size;python_version=="2.7"in/usr/lib/python2.7/site-packages(fromipython==5.5.0)
Requirementalreadysatisfied:traitlets>=4.2in/usr/lib/python2.7/site-packages(fromipython==5.5.0)
Requirementalreadysatisfied:simplegeneric>0.8in/usr/lib/python2.7/site-packages(fromipython==5.5.0)
Collectingpickleshare(fromipython==5.5.0)
Downloadinghttp://mirrors.aliyun.com/pypi/packages/9f/17/daa142fc9be6b76f26f24eeeb9a138940671490b91cb5587393f297c8317/pickleshare-0.7.4-py2.py3-none-any.whl
Requirementalreadysatisfied:decoratorin/usr/lib/python2.7/site-packages(fromipython==5.5.0)
Collectingprompt-toolkit<2.0.0,>=1.0.4(fromipython==5.5.0)
Downloadinghttp://mirrors.aliyun.com/pypi/packages/d1/b0/1a6c262da35c779dd79550137aa7c298a424987240a28792ec5ccf48f848/prompt_toolkit-1.0.15-py2-none-any.whl(247kB)
100%|████████████████████████████████|256kB61.8MB/s
Requirementalreadysatisfied:pexpect;sys_platform!="win32"in/usr/lib/python2.7/site-packages(fromipython==5.5.0)
Collectingpathlib2;python_version=="2.7"orpython_version=="3.3"(fromipython==5.5.0)
Downloadinghttp://mirrors.aliyun.com/pypi/packages/74/4e/68add57f8b993bb5da70c22c7eebb4266c7b66cab15095a1578cc6a62b1a/pathlib2-2.3.0-py2.py3-none-any.whl
Requirementalreadysatisfied:ipython-genutilsin/usr/lib/python2.7/site-packages(fromtraitlets>=4.2->ipython==5.5.0)
Requirementalreadysatisfied:enum34;python_version=="2.7"in/usr/lib/python2.7/site-packages(fromtraitlets>=4.2->ipython==5.5.0)
Requirementalreadysatisfied:sixin/usr/lib/python2.7/site-packages(fromtraitlets>=4.2->ipython==5.5.0)
Collectingwcwidth(fromprompt-toolkit<2.0.0,>=1.0.4->ipython==5.5.0)
Downloadinghttp://mirrors.aliyun.com/pypi/packages/7e/9f/526a6947247599b084ee5232e4f9190a38f398d7300d866af3ab571a5bfe/wcwidth-0.1.7-py2.py3-none-any.whl
Collectingscandir;python_version<"3.5"(frompathlib2;python_version=="2.7"orpython_version=="3.3"->ipython==5.5.0)
Downloadinghttp://mirrors.aliyun.com/pypi/packages/77/3f/916f524f50ee65e3f465a280d2851bd63685250fddb3020c212b3977664d/scandir-1.6.tar.gz
Installingcollectedpackages:scandir,pathlib2,pickleshare,wcwidth,prompt-toolkit,ipython
Runningsetup.pyinstallforscandir...error
Completeoutputfromcommand/usr/bin/python2-u-c"importsetuptools,tokenize;__file__='/tmp/pip-build-Ezagxu/scandir/setup.py';f=getattr(tokenize,'open',open)(__file__);code=f.read().replace('\r\n','\n');f.close();exec(compile(code,__file__,'exec'))"install--record/tmp/pip-XwbXPl-record/install-record.txt--single-version-externally-managed--compile:
runninginstall
runningbuild
runningbuild_py
creatingbuild
creatingbuild/lib.linux-x86_64-2.7
copyingscandir.py->build/lib.linux-x86_64-2.7
runningbuild_ext
building'_scandir'extension
creatingbuild/temp.linux-x86_64-2.7
gcc-pthread-fno-strict-aliasing-O2-g-pipe-Wall-Wp,-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector-strong--param=ssp-buffer-size=4-grecord-gcc-switches-m64-mtune=generic-D_GNU_SOURCE-fPIC-fwrapv-DNDEBUG-O2-g-pipe-Wall-Wp,-D_FORTIFY_SOURCE=2-fexceptions-fstack-protector-strong--param=ssp-buffer-size=4-grecord-gcc-switches-m64-mtune=generic-D_GNU_SOURCE-fPIC-fwrapv-fPIC-I/usr/include/python2.7-c_scandir.c-obuild/temp.linux-x86_64-2.7/_scandir.o
_scandir.c:14:20:fatalerror:Python.h:Nosuchfileordirectory
#include<Python.h>
^
compilationterminated.
error:command'gcc'Failedwithexitstatus1
----------------------------------------
Command"/usr/bin/python2-u-c"importsetuptools,'exec'))"install--record/tmp/pip-XwbXPl-record/install-record.txt--single-version-externally-managed--compile"Failedwitherrorcode1in/tmp/pip-build-Ezagxu/scandir/

解决方法:
yum install python-devel libxslt-devel libffi-devel openssl-devel gcc gcc-c++ kernel-devel


CentOS7安装MysqL-python出错

解决方法:

yum install python-devel MysqL-devel zlib-devel openssl-deve


资料:https://www.92ez.com/?action=show&id=23431

MySQL DECLARE中的SELECT INTO变量会导致语法错误?

MySQL DECLARE中的SELECT INTO变量会导致语法错误?

我想选择一个值到一个变量中。我试图遵循:

DECLARE myvar INT(4);

-立即返回一些语法错误。

SELECT myvalue 
  FROM mytable 
 WHERE anothervalue = 1;

-返回一个整数

SELECT myvalue 
  INTO myvar 
  FROM mytable 
 WHERE anothervalue = 1;

-不起作用,也尝试了@myvar

是否可以在存储过程或函数之外使用DECLARE?

也许我只是不了解用户变量的概念……我只是尝试过:

SELECT myvalue INTO @var FROM `mytable` WHERE uid = 1;
SELECT @var;

…工作原理与预期的一样。但是,如果我一次运行每个查询,我只会得到@var NULL。

今天的关于Python和MySQLdb:替换表会导致语法错误mysql替换所有表中数据的分享已经结束,谢谢您的关注,如果想了解更多关于c# – 为什么nullable上的模式匹配会导致语法错误?、C#,MySQL,ADO.NET,分隔符导致语法错误、Centos 7.4 安装ipython和mysql-python遇到的问题、MySQL DECLARE中的SELECT INTO变量会导致语法错误?的相关知识,请在本站进行查询。

本文标签: