史无前例的,莫名其妙的错误!高手请进来看看!
php吧
全部回复
仅看楼主
level 1
花生米1979 楼主
update更新数据表某个字段的内容,当更新前几次都没有任何问题!!
但更新几次后,
更新修改就没有任何反应了!?
也没报任何错误!请高手们看看,这到底是哪里发了神经,
<?
@$class_text=$_POST['class_text']; //接收文本变量
$x=mysql_query("select * from content");$a=mysql_fetch_array($x); //读取该字段原内容
$p_id="p".time(); //生成一个用时间做字符串的id
$words=$a['words']."<p id=\"".$p_id."\">".$class_text."</p>";
//修改到的数据库里的内容,含义是: $原数据 加上 <p id=“随机id”>$新接收数据</p>
$b=mysql_query("update content set words='$words' where biaoti='u1-1' "); //修改更新到数据库,words的类型的text
mysql_query("update content set new='1' where biaoti='u1-1'"); //修改一个字段的值
if($b)
{echo '写入成功'.'<br>';}
else
{echo '修改失败,出错信息是:'.mysql_error().'<br>';} //即使修改失败,这里也没报任何错误!!!
echo "<meta http-equiv='refresh' content='1;URL=index.php'>";
?>
开头几次更新修改都没任何问题,几个操作后,数据库就不做任何反应了,就是不能再修改了。
2018年08月14日 06点08分 1
level 1
花生米1979 楼主
求高手帮忙!
2018年08月14日 13点08分 2
level 8
这好像不是全部程序吧
2018年08月15日 03点08分 4
截取的某一段?
2018年08月15日 03点08分
谢谢指导,今天发现重大突破,只要把该字段的值全部删除,然后再执行更新命令就正常了,但更新到一点数量,再次无效,怀疑是字段容量问题,但我已经把类型改成longtext了,但还是无效。
2018年08月15日 09点08分
@q1w05 高手,终于找到问题了,是字符串中的: ' 这个字符问题,英语中的一撇,比如 what's your name? 中的那个 ‘ ,导致以后的输入任何字符无效,且也不报错!这是怎么回事?
2018年08月17日 02点08分
@花生米1979 你没有加转义
2018年08月17日 06点08分
level 8
<?php
@$class_text = $_POST['class_text'];
mysql_connect("127.0.0.1", "root", "root"); //错误,没有连接数据库(这是我后加的)
$x = mysql_query("Select * from content");//这里不需要条件where biaoti = 'u1-1'吗?
$a = mysql_fetch_array($x);
$p_id = "p" . time();
$words = $a['words'] . "<p id=\"".$p_id."\">" . $class_text . "</p>";
$b = mysql_query("Update content SET words='" . $words . "' where biaoti = 'u1-1' ");
$c = mysql_query("Update content SET new='1' where biaoti='u1-1'");
if($b && $c){
echo '写入成功'.'<br>';}
else{
echo '修改失败,出错信息是:'. mysql_error() .'<br>';
}
//echo "<meta http-equiv='refresh' content='1;URL=index.php'>"; //先注释掉
?>
看我注释
2018年08月15日 04点08分 5
要确定这几点 1.$_POST['class_text']是不是一样的 2.有没有登录mysql数据库 3.$x的值获取时(第四行)是不是正确的,变量类型是不是string
2018年08月15日 04点08分
高手,再次发现重大突破,如果输入的都是中文,永远没问题,如果是英文,一般4到5句后就报错,不行了!!!这究竟是怎么回事???
2018年08月15日 09点08分
level 3
更新的时候记录下日志,可以了解执行情况,从而方便找问题
2018年08月15日 04点08分 6
再次发现重大突破,如果输入的都是中文,永远没问题,如果是英文,一般4到5句后就报错,不行了!!!这究竟是怎么回事???
2018年08月15日 09点08分
level 16
[喷]代码尽量不要只直接贴在百度贴吧的发布框里,贴吧吃格式之后让代码非常不易于阅读,如果可以最好配张代码截图
2018年08月15日 05点08分 7
请看图
2018年08月15日 09点08分
再次发现重大突破,如果输入的都是中文,永远没问题,如果是英文,一般4到5句后就报错,不行了!!!这究竟是怎么回事???
2018年08月15日 09点08分
level 1
花生米1979 楼主
2018年08月15日 09点08分 8
level 1
花生米1979 楼主
高手们,代码操作没有任何问题,能正常执行,仅仅是当多次更新执行后,就不再有任何反应了!把该字段的数值删除,然后又可以执行了。也就是添加到一定数量的文本后,就无效了!!!
2018年08月15日 09点08分 9
再次发现重大突破,如果输入的都是中文,永远没问题,如果是英文,一般4到5句后就报错,不行了!!!这究竟是怎么回事???
2018年08月15日 09点08分
level 1
花生米1979 楼主
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>接收文本</title>
</head>
<? include('../config.php');@$class_text=$_POST['class_text'];?>
<body>
<?
$x=mysql_query("select * from content where biaoti='u1-1' ");$a=mysql_fetch_array($x);
$p_id="p".time();
$words=$a['words']."<p id=\"".$p_id."\">".$class_text."</p>";
$b=mysql_query("update content set words='$words' where biaoti='u1-1' ");
mysql_query("update content set new='1' where biaoti='u1-1'");
if($b)
{echo '写入成功'.'<br>';}
else
{echo '修改失败,出错信息是:'.mysql_error().'<br>';}
echo "<meta http-equiv='refresh' content='1;URL=index.php'>";
?>
</body>
</html>
表字段名上面有图,请高手也试试,为啥英语更新几次就不行了,而中文随你更新到几时,没有一点差错!
2018年08月15日 09点08分 10
level 1
用框架吧,你这增删改查也就是两行代码的事情,没必要浪费时间在这上面
2018年08月15日 09点08分 11
level 9
mysql_query("update content set new='1' where biaoti='u1-1'");
这句代码有问题,它的执行结果你没有捕获,new字段以前为0时,更新到1没问题。
要是new字段为1后,再更新为1,就会出错,因为根本没更新。加个变量捕获一下试试吧
2018年08月16日 01点08分 13
这行代码我注释掉了,还是无效,并且这行代码没有报错,是上一行修改words='$words'bao报错。总之,还是谢谢指导和分析
2018年08月16日 10点08分
level 9
要不将 "update content set words='$words' where biaoti='u1-1' " 语句改成
"update content set words = '".$words."' where biaoti='u1-1' " 格式试试,看看能否正常运行
2018年08月16日 12点08分 14
高手,终于找到问题了,是字符串中的: ' 这个字符问题,英语中的一撇,比如 what's your name? 中的那个 ‘ ,导致以后的输入任何字符无效,且也不报错!这是怎么回事?
2018年08月17日 02点08分
@花生米1979 找到就好,按理说会报错的
2018年08月17日 02点08分
level 12
[黑线]
2018年08月17日 02点08分 16
level 1
花生米1979 楼主
问题已经解决,是字符串中带有关键字符 ' 导致,要用字符串转义或正则,强制为纯文本字符
2018年11月15日 02点11分 17
level 1
花生米1979 楼主
问题已经解决,是字符串中带有关键字符 ' 导致,要用字符串转义或正则,强制为纯文本字符
2018年11月15日 02点11分 18
1