> 백엔드 개발 > PHP 튜토리얼 > 为什么执行插入sql语句,echo就失效了

为什么执行插入sql语句,echo就失效了

WBOY
풀어 주다: 2016-06-23 13:38:19
원래의
1413명이 탐색했습니다.

我执行插入语句的方法是

       function execute_data($sql){		$result = @mysql_query($sql) or die(mysql_error());		@mysql_free_result($result) or die(mysql_error());		return $result;	}
로그인 후 복사


 $sql = "insert into test(name) values('$name')"; if(execute_data($sql)) {     echo 'ok';}
로그인 후 복사


这样的,我这样插入语句是已经执行了, 已经插入到数据库的表中,但是echo却没有输出到网页上。。是什么原因?
用其他方法执行查询语句的话 echo可以输出到网页上。

执行查询语句的方法
	function get_js_array($sql){		$result = @mysql_query($sql) or die(mysql_error());		$arr = array();		while($row = @mysql_fetch_array($result, MYSQL_ASSOC)){			$arr[] = $row;  		}		$js = json_encode($arr);		mysql_free_result($result);		return $js;	}
로그인 후 복사


回复讨论(解决方案)

函数execute_data的返回值$result被函数mysql_free_result释放掉了返回出去就是null了吧

把$result打印出来看看是不是为假

把$result打印出来看看是不是为假



不为假吧。  我都成功插入了。  只是echo输出不出来。

mysql_free_result

你都释放掉了还有返回?

mysql_query($sql) 对于 insert 指令只返回逻辑值
因此 mysql_free_result($result) 会报错:$result 不是有效的资源
但是你屏蔽了 php 错误信息,而 die(mysql_error()) 只是终止程序,因为 sql 指令并没有错(mysql_error() 返回空串)

mysql_query($sql) 对于 insert 指令只返回逻辑值
因此 mysql_free_result($result) 会报错:$result 不是有效的资源
但是你屏蔽了 php 错误信息,而 die(mysql_error()) 只是终止程序,因为 sql 指令并没有错(mysql_error() 返回空串)



那我有什么办法可以让他输出出来吗?

注释掉 @mysql_free_result($result) or die(mysql_error()); 这句

注释掉 @mysql_free_result($result) or die(mysql_error()); 这句


谢谢,解决了!
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿