[英]SQLite PDO Databases in PHP
因此,我一直在尝试在线寻找答案,但似乎没有得到答案。 我已经阅读了http://php.net上的所有PHP参考,但仍然找不到具体的答案。
我的问题是:
我有一个PHP源文件,该文件通过以下方式加载到HTML文件中:
<form name="input" action="register.php" method="get">
User: <input type="text" name="user" />
Pass: <input type="text" name="pass" />
<p><input type="submit" value="Submit" />
</form>
到目前为止一切顺利,对吗? 所以,那么我有这个.php文件:
<?php
$db = new PDO('sqlite::database:');
$a = $_GET['user'];
$b = $_GET['pass'];
$firstSearchF = $db->prepare('SELECT nome FROM Users WHERE name_U = _nome');
$firstSearchF->bindParam('_nome', $a, PDO::PARAM_STR);
$firstSearchF->execute();
$firstSearch = $firstSearchF->fetch();
if(empty($firstSearch))
{
$final = $db->prepare('INSERT INTO Users (name_u,password) VALUES(nome,passW)');
$final->bindParam('nome', $a, PDO::PARAM_STR);
$final->bindParam('passW', $b, PDO::PARAM_STR);
$final->execute();
echo 'User Registered Successfully!';
}
else
{
echo 'Sorry, but the requested user already exists in the database. Try again!';
}
?>
每当我在表单上输入某些内容并点击Submit时,输出将如下所示:
"prepare('SELECT nome FROM Users WHERE name_U = _nome'); $firstSearchF->bindParam('_nome', $a, PDO::PARAM_STR); $firstSearchF->execute(); $firstSearch = $firstSearchF->fetch(); if(empty($firstSearch)) { $final = $db->prepare('INSERT INTO Users (name_u,password) VALUES(nome,passW)'); $final->bindParam('nome', $a, PDO::PARAM_STR); $final->bindParam('passW', $b, PDO::PARAM_STR); $final->execute(); echo 'User Registered Successfully!'; } else { echo 'Sorry, but the requested user already exists in the database. Try again!'; } ?>"
唯一的问题是,我知道输出是->之后的内容。 但是为什么会这样呢? 我只是想测试一下,而不能像回声之后那样使输出正常工作。
如何解决这个问题? 有任何想法吗? 先谢谢你。 ^^
首先,通过将错误报告放在脚本顶部来启用错误报告以进行开发
ini_set('display_errors', 'On');
error_reporting(E_ALL);
其次,您的SQLite DSN不正确。 应该是
sqlite:/path/to/database/file
要么
sqlite::memory:
参见http://www.php.net/manual/en/ref.pdo-sqlite.connection.php
您的bind参数也不正确。 它应该以冒号作为前缀,例如
$firstSearchF = $db->prepare('SELECT nome FROM Users WHERE name_U = :nome');
$firstSearchF->bindParam('nome', $a, PDO::PARAM_STR);
其他语句和绑定也是如此。
最后,我不完全相信您在问题中发布的代码与环境中显示的代码相同。 您能否再次检查并发布任何更正?
另外,通过GET
表单提交凭据,这很酷。 请改用POST
。 存储纯文本密码,也是禁止的。
考虑到您所看到的,想一想,我怀疑您是在启用PHP的Web服务器上运行它。 确认您具有正在运行的Web服务器,并且已将PHP作为模块或CGI安装。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.