php pdo ¿我做错了什么?

发布于 2024-07-18 02:19:10 字数 852 浏览 1 评论 0原文

我正在学习 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

紫﹏色ふ单纯 2024-07-25 02:19:10

这是 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.

笑忘罢 2024-07-25 02:19:10

$cn 有效吗? 检查返回值。 到目前为止你所描述的并不能让我相信你们是有联系的。

Is $cn valid? Check the return value. What you've described so far doesn't convince me that you're connected.

谁许谁一生繁华 2024-07-25 02:19:10

如果您还没有这样做,我会确保您的环境正常运行。

  1. 检查以确保用户使用 MySQL 本身(使用 mysqlquery 之类的东西)。
  2. 检查以确保 php 可以连接到 MySQL。 我在所有新设置上安装 phpmyadmin(即使我没有将其保留在原处),以确保我有良好的工作连接。
  3. 通过错误异常处理 PDO(请参阅 https://www.php。 net/manual/en/pdo.error-handling.php)以立即查看错误发生的位置。

我的猜测是您从未连接到 MySQL,这可以解释无法更改数据库的原因。

If you haven't already, I'd make sure your environment was working right.

  1. Check to make sure the user works with MySQL itself (using something like mysqlquery).
  2. Check to make sure php can connect to MySQL. I install phpmyadmin on all new setups (even if I don't leave it in place) to make sure I have a good working connection.
  3. Have PDO through exceptions on errors (see https://www.php.net/manual/en/pdo.error-handling.php) to see where the errors are occurring right away.

My guess is that you are not ever connecting to MySQL, which would explain the inability to change the database.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文