ホームページ >バックエンド開発 >PHPチュートリアル >insert SQL ステートメントの実行時に echo が失敗するのはなぜですか?

insert SQL ステートメントの実行時に echo が失敗するのはなぜですか?

WBOY
WBOYオリジナル
2016-06-23 13:38:191413ブラウズ

insert ステートメントを実行する方法は次のとおりです。

       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';}


このようにして、insert ステートメントが実行され、データベース テーブルに挿入されましたが、エコーは Web ページに出力されません。 。理由は何ですか?
他の方法でクエリ文を実行すると、Web ページにエコーを出力できます。

クエリ文を実行するメソッド
	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 を出力して偽かどうかを確認してください

偽ではありません。無事挿入できました。エコー出力ができないだけです。

mysql_free_result

解放して返しましたか?

mysql_query($sql) は挿入コマンドの論理値のみを返します

したがって、mysql_free_result($result) はエラーを報告します: $result は有効なリソースではありません

しかし、php エラー メッセージをブロックしているため、die( mysql_error()) はプログラムを終了するだけです。 SQL コマンドには何も問題がないためです (mysql_error() は空の文字列を返します)

mysql_query($sql) は挿入コマンドの論理値のみを返します

したがって、mysql_free_result($ result) はエラーを報告します: $result は有効なリソースではありません

しかし、それをブロックしたのは PHP エラー メッセージであり、SQL コマンドが間違っていないため、die(mysql_error()) はプログラムを終了するだけです (mysql_error() は空の文字列を返します) )

それを出力させる方法はありますか? @Mysql_free_result ($ Result) または DIE (mysql_error ()) に注意してください。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。