我已经建立了我的第一个表单/PHP/mySQL组合,使用来自不同站点(包括这个站点)的信息,并在本地服务器上使用MAMP运行它。尽管网页总是成功地连接到目标数据库,但它并没有将我键入的数据输入到MySQL表中(我正在使用phpMyAdmin进行检查)。
你可能会看到一些被评论出来的东西,这是我以前试过但没用的东西。
窗体打开insert.php

<form action="insert.php" method="post">
        Diet Name: <input type="text" name="name"><br/>
        Your Rating: <select type="int" name="rating">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
        </select><br/>
        Type: BodyBuilding<input type="radio" name="type" value="BodyBuilding"> Weight Loss<input type="radio" name="type" value="Weight Loss"><br/>
        Description: <input type="text" name="descr"><br/>
    <input type="submit">

index.php该网页将表单数据发送到
<?php

    define('DB_NAME', 'diet');
    define('DB_USER', 'root');
    define('DB_PASSWORD', 'root');
    define('DB_HOST', 'localhost');

        $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
        $db_selected = mysql_select_db(DB_NAME, $link);

    if (!$db_selected) {
        die('Could not use ' . DB_NAME . ': ' . mysql_error());
    }
        /*$sql="INSERT INTO diet (name, rating, type, descr)
        VALUES('$_POST[name]','$_POST[rating]','$_POST[type],'$_POST[descr]')";*/

        $sql = "INSERT INTO diet ('name', 'rating', 'type', 'descr') VALUES ('$name','$rating','$type','$descr', NOW())";

    if (!$link)
    {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
?>

最佳答案

下面是一个PDO示例。我不知道Now()代表什么(可能是插入日期),但我认为您可以想出如何添加它。

$dbhost = 'YOUR_SERVER';
$dbuser = 'YOUR_USERNAME';
$dbpass = 'YOUR_PASSWORD';
$dbname = 'YOUR_DATABASE_NAME';

try {
  $conn = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
}
catch(PDOException $e) {
    echo $e->getMessage();
}

$name = $_POST[name];
$rating = $_POST[rating];
$type = $_POST[type];
$desc = $_POST[descr];

if ($conn)
    {
        $query = "INSERT INTO diet (name, rating, type, descr) VALUES(:name, :rating, :type, :desc)";
        $insert = $conn->prepare($query);
        $insert->bindValue(":name",$name);
        $insert->bindValue(":rating",$rating);
        $insert->bindValue(":type",$type);
        $insert->bindValue(":desc",$desc);

        $insert->execute();
    }
    /* Free connection resources. */
    $conn = null;

文档:http://us2.php.net/pdo.prepared-statements
Why you Should be using PHP’s PDO for Database Access

关于php - PHP无法通过表单创建mySQL记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21370531/

10-11 22:21
查看更多