使用PDO插入数据库

Dom*_*les 2 php pdo

我正在尝试将数据插入到我服务器上的数据库中.

要连接到我的数据库,我有以下代码:

<?php
$host = "/homes/49/jc192699/public_html/dbase/";
$database = "EduPro.db";
$dbhandle = new PDO("sqlite:".$host.$database);

try {
    $dbhandle = new PDO("sqlite:".$host.$database);

} catch (PDOException $e) {

echo 'Connection failed: ' . $e->getMessage();
}
?> 
Run Code Online (Sandbox Code Playgroud)

这一切都很好!我已将此包含在我的代码中,因此不是问题.

这是我将数据插入数据库的代码:

<?php

$sql = "INSERT INTO USERS (`userName`, `password`) VALUES (`test, `testy`)";
  if ( $fetched = $dbhandle->query($sql)){
  $fetched->execute(PDO::FETCH_BOTH);
  echo "Success!";
  }

  else {
echo "Fail.";
}

?>
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它不会将数据插入数据库.我知道SQL语句100%正确,因为我在其他地方测试过它.

谁能帮我?

Ibr*_*mar 5

你正在打开两个数据库连接.将您的代码更改为

$host = "/homes/49/jc192699/public_html/dbase/";
$database = "EduPro.db";
try {
    $conn = new PDO("sqlite:".$host.$database);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

你不应该在查询中使用反引号而不是单引号.并且列也不应该有任何引号.

try {
    $sql = "INSERT INTO USERS (userName, password) VALUES ('test', 'testy')";
    $sth = $conn->query($sql);
} catch(PDOException $e) {
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

获取您需要使用此记录的记录

try {
    $sth = $conn->query('SELECT * FROM USERS');
    $rows = $sth->fetchAll(PDO::FETCH_ASSOC);
    //$rows contains the fetched records in an associative array
    var_dump($rows);
} catch(PDOException $e) {
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

在这里了解有关PDO的更多信息http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/