ホームページ >バックエンド開発 >PHPチュートリアル >初心者が機能について質問がある
初心者が function
function del_news($nid)
{
$selnews_str = "select n_class,n_image,n_pname,n_path from news where n_id=".$nid;
$selnews_result について質問しています。 = mysql_query($selnews_str,$con);
$selnews_row = mysql_fetch_array($selnews_result);
$class = $selnews_row["n_class"];
if($selnews_row)
echo("コンテンツあり");
}
else
{
echo("コンテンツなし");
}
if($_GET[" nid"] != null || $_GET["nid"] != "")
{
del_news($_GET["nid "]);
}
上記コードを del_news の外に置くと、内容が表示されます。関数内に入れて呼び出すと、内容は表示されません。パラメータは正しくありません。その理由は何でしょうか?
-----解決策---------
PHP コード
関数 del_news($nid)
{
}
$selnews_str = "n_id=".$nid; のニュースから n_class、n_image、n_pname、n_path を選択します。
$selnews_result = mysql_query($selnews_str,$con);
$selnews_row = mysql_fetch_array($selnews_result);
$class = $selnews_row["n_class"];
if($selnews_row)
{
echo("コンテンツがあります");
}
それ以外
{
echo("コンテンツがありません");
}
エコー($nid);
if($_GET["nid"] != null || $_GET["nid"] != "")
{
del_news($_GET["nid"]);
}
<br>エラーメッセージは何ですか? <font color="#e78608"></font>推測: <br> 関数のスコープの問題である可能性があります。 データベース接続ハンドルはグローバルです。関数でのデータの操作はデータベースに接続されていないとみなされます。 <br><br>------解決策----------------------<br><br>$selnews_result = mysql_query($selnews_str,$con ) ;<font color="#e78608">ここの $conn はローカル変数です</font>グローバルは宣言されていません。 <br>これが理由かもしれません。 <br>関数内にデータベース接続ハンドルを追加してみてください。 <br> <br><br>------解決策----------------------<br><br>$selnews_result = mysql_query($selnews_str); <font color="#e78608"></font>-----解決策---------<br><br>実行命令! 関数に入れる場合はどうやって呼び出すのでしょうか? <font color="#e78608"></font>-----解決策---------<br><br>解決できます。 それができるモデレーターもいます。 <font color="#e78608"></font>