php中执行sql时,里面包含的特殊字符被莫名奇妙的截断了
php中执行sql的问题<?php$link=mysql_connect("localhost:3306","root","123456")ordie("database...
php中执行sql的问题
<?php
$link=mysql_connect("localhost:3306","root","123456") or die("database connect wrong".mysql_error());//自己设置
mysql_select_db("test_com",$link) or die("database wrong".mysql_error());//自己设置
mysql_set_charset('utf8',$link);
$sql1="INSERT INTO `wpa_posts` (`post_title`) VALUES ('test title electrodomésticos')";
$result1=mysql_query($sql1);
echo $sql1;
?>
运行结果:
INSERT INTO `wpa_posts` (`post_title`) VALUES ('test title electrodomésticos')
这句话直接拿到phpmyadmin里面去执行,数据插入正常
但是:执行mysql_query()的时候,插入的数据就成了 test title electrodom
简单说就是到那个特殊字符那里就被截断掉了。
这是为什么呢?
哪位大吓来赐教一下呢,快急死了 展开
<?php
$link=mysql_connect("localhost:3306","root","123456") or die("database connect wrong".mysql_error());//自己设置
mysql_select_db("test_com",$link) or die("database wrong".mysql_error());//自己设置
mysql_set_charset('utf8',$link);
$sql1="INSERT INTO `wpa_posts` (`post_title`) VALUES ('test title electrodomésticos')";
$result1=mysql_query($sql1);
echo $sql1;
?>
运行结果:
INSERT INTO `wpa_posts` (`post_title`) VALUES ('test title electrodomésticos')
这句话直接拿到phpmyadmin里面去执行,数据插入正常
但是:执行mysql_query()的时候,插入的数据就成了 test title electrodom
简单说就是到那个特殊字符那里就被截断掉了。
这是为什么呢?
哪位大吓来赐教一下呢,快急死了 展开
4个回答
展开全部
mysql_escape_string(),新版已经被淘汰
<?php
$link=mysql_connect("localhost:3306","root","123456") or die("database connect wrong".mysql_error());//自己设置
mysql_select_db("test_com",$link) or die("database wrong".mysql_error());//自己设置
mysql_set_charset('utf8',$link);
$content=addslashes('test title electrodomésticos');
$sql1="INSERT INTO `wpa_posts` (`post_title`) VALUES ('".$content."')";
$result1=mysql_query($sql1);
echo $sql1;
?>
<?php
$link=mysql_connect("localhost:3306","root","123456") or die("database connect wrong".mysql_error());//自己设置
mysql_select_db("test_com",$link) or die("database wrong".mysql_error());//自己设置
mysql_set_charset('utf8',$link);
$content=addslashes('test title electrodomésticos');
$sql1="INSERT INTO `wpa_posts` (`post_title`) VALUES ('".$content."')";
$result1=mysql_query($sql1);
echo $sql1;
?>
追问
你的$sql1的值和楼主所说到的值是一样的,问题出在mysql_squery()上,sql语句绝对没有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你的sql语句里面有特殊字符,所以插入的时候,可能被误以为是sql的结束,遇到这种情况应该使用字符串转义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-12-04
展开全部
mysql_escape_string()把字段用这个函数转一下。。。
更多追问追答
追问
$test1=mysql_escape_string('test title electrodomésticos');
$sql1="INSERT INTO `wpa_posts` (`post_title`) VALUES ( '$test1')";
结果还是 在特殊字符那里被阶断了
加下我QQ吧,854680544,或者我加你QQ谢谢了
追答
调试结果是。
mysql_set_charset('utf8_general_ci', $link);
改成这样就可以了。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
é 是什么字符,你要用的乱吗吧
追问
electrodomésticos,是西语中的一个字符,这里我要把它当作正常字符来用的。所以不能去掉它。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询