Php 什么';我的pdo准备的声明有什么问题?

Php 什么';我的pdo准备的声明有什么问题?,php,mysql,Php,Mysql,我做错了什么?我知道事实与事先准备好的陈述有关。谢谢 编辑:这里是脚本的所有代码,这样每个人都可以看到发生了什么。我现在必须添加更多的单词b/c表单不喜欢我添加了多少代码 <? if($_SERVER['REQUEST_METHOD'] == "POST"){ include_once("includes/connect.php"); session_start(); $error = array(); $success = "The a

我做错了什么?我知道事实与事先准备好的陈述有关。谢谢

编辑:这里是脚本的所有代码,这样每个人都可以看到发生了什么。我现在必须添加更多的单词b/c表单不喜欢我添加了多少代码

<?  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();                             

}
?>

该参数称为
:artist

$stmt->execute(array('artist' => $artistName));
你用
美术师
来称呼它。冒号也应该在那里,即使它是在内部添加的


关于错误,在这种情况下,唯一不会被异常捕获的是致命错误。在php.ini中使用
error\u reporting=-1
display\u errors=On
应该可以使错误可见。否则,请使用
error\u log
.ini设置。

您是否收到任何错误消息?发生了什么或没有发生什么?“这里有一些代码,告诉我它是否工作,为什么不”很难回答。只是一条500内部服务器错误消息。我添加了错误报告(E_ALL);ini_设置(“显示错误”、“打开”);在某一点上,但它没有摆脱500消息检查您的错误日志。500是Apache刚刚抛出的,不知道还能做什么,PHP和/或Apache会在某个地方记录错误。@deceze我的脚本在这部分之前运行良好。我认为这只是我准备好的语句的语法错误。这就是为什么我没有包括任何其他内容。没有冒号它应该可以工作。@Jack,谢谢,但我试过了,但没有解决它。我仍然有错误。@heyjohnmurray错误是什么?就像我说的,我尝试添加错误报告(E_ALL);ini_设置(“显示错误”、“打开”);向我展示更具体的错误,但这没有任何作用。关于如何让它输出错误的任何其他建议。thanks@pfyod这种行为不应该被依赖,因为它没有记录在案。
$stmt->execute(array('artist' => $artistName));