php - 这个 PDO 脚本有什么问题

标签 php mysql forms pdo

我在这里编写一个脚本,它将使用一个简单的 html 表单将三个不同的值发送到数据库。但是每当我提交表单时,都没有插入任何值,并且我收到以下错误:

error

此错误的可能原因是什么。我该如何解决此问题。

$server='localhost';
$user='root';
$password='';
$dbname='fruits';
if(isset($_POST['name']) &&isset($_POST['colour']) && isset($_POST['calories'])){
   if(!empty($_POST['name']) && !empty($_POST['colour']) && !empty($_POST['calories'])){
$name=$_POST['name'];
$colour=$_POST['colour'];
$calories=$_POST['calories'];
try{
$conn=new PDO('mysql:host=$server,dbname=$dbname,$user,$password');
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt=$conn->prepare("INSERT INTO favfruit(name,colour,calories) 
                      VALUES(:name,:colour,:calories)");

$stmt->execute(array(':name'=>$name,':colour'=>$colour,':calories'=>$calories));
echo 'it was successfully entered to database';
}catch(PDOException $e){
    echo 'error : '.$e->getMessage();
}
}
}

HTML 格式:

<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post'>
    fruit name :<input type='text' placeholder='fruit name' name='name'></br>
    colur      :<input type='text' placeholder='fruit colour' name='colour'></br>
    calories   :<input type='text' placeholder='calories' name='calories'></br>
    <input type='submit' value='SUBMIT FORM'>
</form>

最佳答案

您的问题只是一个错字。替换

$conn=new PDO('mysql:host=$server,dbname=$dbname,$user,$password');

通过

$conn=new PDO("mysql:host=$server;dbname=$dbname",$user,$password);

关于php - 这个 PDO 脚本有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29180497/

相关文章:

mysql - 为什么我无法使用 bash 脚本对自动增量 mysql 表重新排序?

mysql - 在 GROUP BY 中使用 LIMIT 来获得每组 N 个结果?

javascript - 使用 Javascript 设置时表单操作不正确

javascript - 如何使用 javascript 提醒用户在表单验证中更正输入字段?

php - 如何将 mySQL 查询中的 MAX 值分配给 PHP 变量?

php - 隐藏html5/javascript代码的方法

php - 使用php在数据库中插入日期格式

php - 如果商店关门,则禁用 Dokan 上的送货方式

php - mysql查询,使用字段作为列

javascript - 为什么我的表单在 ng-repeat 内部时不起作用?