如何处理MySQL Error?

如何处理MySQL Error?,第1张

1.停止mysql服务:

右键点击“我的电脑”图标,出现右键菜单后左键点击“管理”。d出“电脑管理”对话框后,左键点击“服务与程序”,接着点击“服务”,最后找到mysql服务并将其关闭。

2.进入控制面板,点击卸载程序,进入卸载程序对话框后卸载mysql。

3.组合键W+R进入运行,输入“regedit”,查看下面  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的键值,将mysql键值(mysql、mysqladmin)删掉 。

4.重启系统。

5.再次安装mysql程序。

flask中向mysql中数据 *** 作会出现字符集的问题,比如创建数据模型:db.create_all()时,控制台会出现warring 1366 的字符集警告,是这样的:

这个异常是mysql问题,而非python的问题,这是因为mysql的字段类型是utf-xxx, 而在mysql中这些utf-8数据类型只能存储最多三个字节的字符,而存不了包含四个字节的字符。

解决方法:

修改mysql数据表的字段类型为utf8mb4,只有在mysql5.5之后可以支持。

在flask配置中设置字符集:

SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@127.0.0.1:3306/test?charset=utf8"

php+mysql数据时我们必须保证提交到数据库的编码与mysql编码是一致的这样才可以保存中文不出现问号乱码问题,下面我先整理两个让mysql与页面保证编码一致的方法。

解决中文插入数据库乱码的方法:

直接把中文转变成utf-8格式,大多是这个问题导致的。

代码如下复制代码

$str

=

iconv('gbk','utf-8',$str)

如果还不行检查网页编码是否正确:

代码如下复制代码

<?php

header("Content-Type:text/htmlcharset=utf-8")

?>

建表:

代码如下复制代码

Create

TABLE

`net_city`

(

`cityid`

smallint(4)

NOT

NULL

auto_increment,

`cityname`

varchar(80)

NOT

NULL

default

'',

`provinceid`

smallint(2)

NOT

NULL

default

'0',

`inarea`

varchar(5000)

NOT

NULL

default

'',

`outarea`

varchar(5000)

NOT

NULL

default

'',

`tel`

varchar(400)

NOT

NULL

default

'',

PRIMARY

KEY

(`cityid`)

)

ENGINE=MyISAM

DEFAULT

CHARSET=utf8

PHP里的代码:

$conn=mysql_connect("localhost",

"用户名",

"密码")

mysql_query("set

names

'utf8'",$conn)

mysql_select_db("

www.111cn.net

数据名",$conn)

$exec="insert

into

net_city

(cityname,inarea,outarea,tel)

values

('".$link_cityname."','".$link_inarea."','".$link_outarea."','".$link_tel."')"

$result=mysql_query($exec,$conn)

if($result){

echo

"1"

}else{

echo

"0"

}

mysql_close($conn)

后来我试了试全部都用成gbk的,也是可以的~

在查询数据时我们直接使用mysql_query()来设置

mysql_query("SET

NAMES

GBK")

//GBK处为编码设置

例子

下面是

"insert.php"

页面的代码:

代码如下复制代码

<?php$con

=

mysql_connect("localhost","peter","abc123")

if

(!$con)

{

die('Could

not

connect:

'

.

mysql_error())

}

mysql_select_db("my_db",

$con)

mysql_query("SET

NAMES

GBK")

//GBK处为编码设置

$sql="INSERT

INTO

person

(FirstName,

LastName,

Age)VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')"

if

(!mysql_query($sql,$con))

{

die('Error:

'

.

mysql_error())

}

echo

"1

record

added"

mysql_close($con)

?>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8345800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存