-1

私は何を間違っていますか?私は事実が準備されたステートメントと関係があることを知っています。ありがとう!

編集: スクリプトのすべてのコードは次のとおりです。誰もが何が起こっているかを確認できます。追加するコードの量がフォームに気に入らないため、今すぐ単語を追加する必要があります。

<?  if($_SERVER['REQUEST_METHOD'] == "POST"){
    include_once("includes/connect.php");       

    session_start();

    $error = array();
    $success = "The artist has been added!";

    if(!empty($_POST['artist-name'])){
        $artistName = $_POST['artist-name'];
    } else{
        $error[] = "Please enter a valid artist name!";
    }

    if(empty($error)){          

        //prepared statement goes here "INSERT INTO artist VALUES(?)"
        try{
            $pdo = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
            $stmt = $pdo->prepare("INSERT INTO artist(name) VALUES(:artist)");
            $stmt->execute(array("artist" => $artistName));
            while($row = $stmt->fetch()) {
                print_r($row);
            }
        } catch(PDOException $e){
            echo $e->getMessage();
        }

        //$_SESSION["success"] = $success;

    } else {
        $_SESSION["error"] = $error;
    }

    header("Location: ../add-artist.php");
    exit();                             

}
?>
4

1 に答える 1

1
$stmt = $pdo->prepare("INSERT INTO artist VALUES(:artist)");

パラメータは と呼ばれ:artistます。

$stmt->execute(array('artist' => $artistName));

で呼び出していartistます。内部で追加されていますが、コロンもそこにあるはずです。

エラーに関しては、この場合例外によってキャッチされない唯一のものは致命的なエラーです。php.ini にerror_reporting = -1display_errors = Onがあると、エラーが表示されます。それ以外の場合は、error_log.ini 設定を使用します。

于 2013-04-17T06:19:38.403 に答える