我用php向mysql中插入数据的时候,英文和数字插入很正常。但是中文只能插入一次,

也就是说打开页面后,在输入框写入中文的时候,第一次会提示插入成功,但是再输入第二次的时候就会提示输入失败。

我代码:
<?php
$book_name=$_POST['book_name'];
$isbn=$_POST['isbn'];
$article=$_POST['article'];

if (!$book_name || !$isbn || !$article){
echo "所有的内容都要填写";
exit;
}

if (!get_magic_quotes_gpc()){
$book_name=addslashes($book_name);
$isbn=addslashes($isbn);
$article=addslashes($article);
}

@ $db=new mysqli('localhost', 'yanying', '123456', 'test');

if (mysqli_connect_error()){
echo "无法连接数据库";
exit;
}

$query="INSERT INTO book_information VALUES
('".$book_name."','".$isbn."','".$article."')";

$result=$db->query($query);

if ($result){
echo $db->affected_rows."提交成功";
}else{
echo "提交失败";
}

$db->close();

?>

从“英文和数字插入很正常。但是中文只能插入一次”的描述信息,以及代码来看,代码本身没有错误之处,出错误的原因,据经验判断,可能在数据库编码、网页编码、网页文件编码三者不一致上。

假设,你的网页文件编码与网页编码都是gb2312,那么你也应该将数据库编码设置为gb2312.
温馨提示:内容为网友见解,仅供参考
无其他回答

在学php+mysql,写了一个留言板,但是为什么phpmyadmin插入不了中文,英文...
这个就是编码问题,你插入中文,数据库里面把编码格式改成gb2312类型的试试 还有就是php那边也要在插入数据库之前统一编码

php插入sql语句 为什么数据只能插入一条进去
看看是不是数据表的某项键值设置成unique,而你在此项又插入了跟第一项相同的值。

一段PHP插入代码,插入英文的时候没事,插入中文就怎么也插不进去。求解 ...
你用的是gbk?可能浏览器默认的是utf8的,我猜的啊。可以试着补充一句:header("content:text\/html;charset=gbk");

php执行insert怎么就一次插入了2条记录, 我只想插入1条记录
首先,你得看是不是有重复提交表单,然后你再看看是不是有insert数据的时候,是不是有进行循环插入操作了,不然应该不会出现这个问题,肯定不是数据库的问题,如果是数据库的问题,那你根本运行不了,插入不了数据~~~

php不能往mysql数据库添加汉字,只能添加字母和数字
解决中文插入数据库乱码的方法:直接把中文转变成utf-8格式,大多是这个问题导致的。代码如下复制代码 str = iconv('gbk','utf-8',$str);如果还不行检查网页编码是否正确:代码如下复制代码 <?php header("Content-Type:text\/html;charset=utf-8");?> 建表:代码如下复制代码 Create TABLE `net_...

mysql通过php循环插入问题
简单的方法就是使用init_set函数,以下的代码把PHP最大执行时间设定为180秒。ini_set('max_execution_time', '180');但是必须在非安全模式(safe mode)下 同时可以使用ini_get把原来设置的max_execution_time保存下来,在进行完操作时回复原来的设定值。也可以用 set_time_limit(0);...

MySQL无法正常显示中文怎么办mysql中不显示中文
一、原因 1.1字符集不匹配 字符集不匹配是导致MySQL无法正常显示中文的主要原因之一。当数据库字符集和表字符集与客户端连接字符集不同时,就会出现中文乱码的问题。1.2 PHP代码 在PHP程序中,如果没有正确设置响应报头和输出字符集,就会导致MySQL无法正常显示中文。二、解决方法 2.1设置MySQL数据库字符...

MySQL不支持中文字符设置mysql不能设置中文
conn = mysqli_connect($host, $user, $password, $database);mysqli_set_charset($conn, “utf8”);在插入中文数据时,使用mysqli_real_escape_string()函数来转义特殊字符:name = mysqli_real_escape_string($conn, $name);sql = “INSERT INTO mytable (name) VALUES ...

求解,我向mysql里面插入数据,提示已经成功,我的数据库里面却没有显示...
不是变量那里引号的问题。你把错误提示打开,如果没有插入成功,肯定是有错误提示的。你那个"Success"又不能真正地表示插入成功了。。。if (mysql_query($sql)) { echo "Success";}else { echo "Failed";}

PHP插入mysql问题, 下面语句哪里有问题啊,求教!值打印都是正确的,就...
insert 语句没有where子语句!你的sql语句错误 建议把 mysql_query($sql);改成 mysql_query($sql) or die( mysql_error() );打印出数据库的操作错误提示,看看错误原因!也不知道你这php教程是哪来的,谁教的!insert插入语句,竟然用where子语句!!!

相似回答