-3

私はすべてを試しました。これが私の最後の手段であります。以下のコードは、フォームから受け取った情報をデータベースに送信して、後で表示することになっています。クエリが正しいことがわかりましたが、実行されません。これは私には見られないある種のタイプミスだと確信していますが、どんな助けでも大歓迎です。

if($_SERVER['REQUEST_METHOD']=="POST"){

    $blog = $_POST['blog_post'];
    $time = date('Y-m-d h-m-s');
    $id = $_SESSION['author_id'];
    if($blog != ""){
        $query = "INSERT INTO `blog`(`date`,`post`,`author_id`) VALUES('$time','$blog',$id)";
        $result = mysqli_query($link, $query);
        $row = mysqli_affected_rows($link);
        if($result = mysqli_query($link,$query)){
                        include 'header.php';
            $url = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
            $url = rtrim($url, '/\\');
            $url .= '/blog.php'; 
            echo '<h3>Your blog has been posted. Go to <a style="color:white" href="'.$url.'">'.$url.'</a>';


            include 'footer.php';
        }else{
            echo "that didn't work";
        }
    }else{
        include 'header.php';
        echo '<h1>You did not enter a blog post. Please try again.';


        include 'footer.php';
    }
}else{
    redirect('index.php');   
}

?> 
4

2 に答える 2

0

どのクエリがどこで失敗しているかをテストする最良の方法は、エラーを表示することです。

if(!mysqli_query($link,$query)) { die(mysqli_error($link)); }また mysqli_query($link,$query) or die(mysqli_error($link));

これをすべてmysqli_queryの行で変更し、スローされるエラーを確認します。

http://php.net/manual/en/mysqli.error.php

以下の私のコメントについて。データベースへの接続によるエラーもデバッグしますか ( http://php.net/manual/en/mysqli.construct.php ):

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/*
 * This is the "official" OO way to do it,
 * BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
 */
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}
于 2013-05-25T15:30:38.247 に答える