php - 将输入名称读取为数据库表中的一行

标签 php mysql oop web

当我尝试在本例中的 php 应用程序中添加一个新工作室时,我使用 newstudio 作为名称,我收到此错误,我认为它读取了我在数据库表中作为一行给出的名称 fatal error :未捕获异常“PDOException”,消息为“SQLSTATE[42S22]:未找到列:1054 Champ 'newstudio' inconnu dans field list”

private $conn;

public function __construct()
{
    $database = new Database();
    $db = $database->dbConnection();
    $this->conn = $db;
}
public function addStudio($sname,$sdes,$sidusr)
{
    $stmt = $this->conn->prepare("INSERT INTO studio (name,des,idusr) VALUES ($sname,$sdes, $sidusr)");
    $stmt->execute();
}

最佳答案

如果你有字符串值,你应该在这些变量周围使用单引号

public function addStudio($sname,$sdes,$sidusr)
{
    $stmt = $this->conn->prepare("INSERT INTO studio (name,des,idusr)
          VALUES ('$sname','$sdes', '$sidusr')");
$stmt->execute();
}

或者您可以使用参数化查询

public function addStudio($sname,$sdes,$sidusr)
{
    $stmt = $this->conn->prepare("INSERT INTO studio (name,des,idusr)
          VALUES (:sname,:sdes, ':sidusr)");
    $stmt->bindParam(':sname', $sname);
    $stmt->bindParam(':sdes', $sdes);
    $stmt->bindParam(':sidusr', $sidusr);

    $stmt->execute();
}

关于php - 将输入名称读取为数据库表中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42752235/

相关文章:

MYSQL 启动几秒后崩溃

mysql - 选择多列的 max()

javascript - javascript 对象属性的绑定(bind)

php - 如何在 Codeigniter 中使用 includes 和 base 模板?

php - Linux 升级和 OCI8 安装后没有连接到 Oracle DB

PHP 文件上传无法正常使用,如何解决?

php - 表锁失败

oop - 默认情况下,私有(private)属性是否被 .perl 和 .gist 隐藏

java - 代号一日历 UpdateButtonDayDate() 问题

php - 验证输入表单中不允许的用户名字符串