我正在尝试将数据插入到我服务器上的数据库中.
要连接到我的数据库,我有以下代码:
<?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%正确,因为我在其他地方测试过它.
谁能帮我?
你正在打开两个数据库连接.将您的代码更改为
$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/