php pdo ¿我做错了什么?
我正在学习 php pdo; 我的环境是:NetBeans 6.5.1,XAMPP 1.7.0,我有这段代码,它似乎可以连接。
- 如果我将 dbname 更改为不存在的数据库名称,则会引发异常“数据库不存在”
- 如果我更改用户,则会引发“登录不正确”),
但是当我调用 $cn->query 时,它会引发:
apache.exe 中发生未处理的 Win32 异常
我做错了什么?
$hostname = 'localhost';
$username = 'crb';
$password = 'letmein';
try {
$cn = new PDO("mysql:host=$hostname;dbname=bitacora", $username, $password);
echo 'Connected to database<br />';
$sql = "SELECT * FROM usuario WHERE login = '".$login."' AND clave = '".$clave."'";
// Error here
foreach ($cn->query($sql) as $row) {
print $row['login'] .' - '. $row['clave'] . '<br />';
}
} catch (PDOException $e) {
echo $e->getMessage();
} catch (Exception $e) {
echo $e->getMessage();
}
I'm learning php pdo; my environment is : NetBeans 6.5.1, XAMPP 1.7.0 and I have this code, which it seems to connect.
- If I change dbname to a non existent one, it raises exception "db not exists"
- If I change user, it raises "login incorrect")
but when I call $cn->query, it raises:
An unhandled Win32 exception occurred in apache.exe
What am I doing wrong?
$hostname = 'localhost';
$username = 'crb';
$password = 'letmein';
try {
$cn = new PDO("mysql:host=$hostname;dbname=bitacora", $username, $password);
echo 'Connected to database<br />';
$sql = "SELECT * FROM usuario WHERE login = '".$login."' AND clave = '".$clave."'";
// Error here
foreach ($cn->query($sql) as $row) {
print $row['login'] .' - '. $row['clave'] . '<br />';
}
} catch (PDOException $e) {
echo $e->getMessage();
} catch (Exception $e) {
echo $e->getMessage();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是 XAMPP 1.7.0 中的一个错误。 升级到 1.7.1 或按照 这些说明可修复您的 1.7.0 安装。
This is a bug in XAMPP 1.7.0. Upgrade to 1.7.1 or follow these instructions to fix your 1.7.0 installation.
$cn 有效吗? 检查返回值。 到目前为止你所描述的并不能让我相信你们是有联系的。
Is $cn valid? Check the return value. What you've described so far doesn't convince me that you're connected.
如果您还没有这样做,我会确保您的环境正常运行。
我的猜测是您从未连接到 MySQL,这可以解释无法更改数据库的原因。
If you haven't already, I'd make sure your environment was working right.
My guess is that you are not ever connecting to MySQL, which would explain the inability to change the database.