使用 PDO 连接 [关闭]

2024-03-16

刚刚开始使用 PDO。请解释我的连接错误。它总是显示“您已连接”。

    <?php

       define('user','root');
       define('pass','');
       define('db','login_db');

       try
          {
       $dbh = new PDO("mysql:host = localhost; dbname = db",user,pass);
       echo "You are connected";
          }
       catch(PDOException $e)
          {
       echo $e -> getMessage(); 
          }
    ?>

还提供一些您了解的 PDO 教程或电子书。提前致谢。


该问题是由数据源名称 (DSN)(PDO 连接字符串中的第一个参数)中的 2 个语法错误引起的。

错误

  1. 您不能将数据库常量传递到连接字符串中"...dbname = db"。自从db用双引号括起来,并将被解释为字符串而不是常量。
  2. DSN 中不能有空格。它应该是:

    "mysql:host=localhost;dbname=login_db" //no spaces.
    

我已经对此进行了测试,它表现出一些奇怪的行为:

  • 具体来说,似乎之间的空间host和第一个=标志导致问题。如果有空格就会回显"You are connected"即使“localhost”拼写错误。
  • 同样,如果之间有空格dbname和它的=标志,即使指定的数据库名称不正确,它也会显示为已连接。

我的猜测是,这是 PDO 类解析 DSN 的方式的一些怪癖。

解决方案

删除 DSN 中的所有空格。

您还需要以不同的方式传递数据库名称。有不同的方法可以解决这个问题。为了避免出现更多奇怪的调试错误,我建议您使用变量而不是常量定义:

$host = 'localhost';
$user = 'root';
$pass = '';
$db   = 'login_db';

try{
    $dbh = new PDO("mysql:host=$host;dbname=$db",$user,$pass);
    echo "You are connected";
}
catch(PDOException $e){
    echo $e -> getMessage(); 
}

至于好的教程,你可以看看这些:

Net.tuts+:PHP 数据库访问 http://net.tutsplus.com/tutorials/php/php-database-access-are-you-doing-it-correctly/

Net.tuts+:为什么使用 PDO http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

当然,不要忘记 php.net 文档。

php.net :PDO http://php.net/manual/en/book.pdo.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PDO 连接 [关闭] 的相关文章

  • 通过php将mp3转换为ogg

    我有一个网站 用户可以上传音乐并将其转换为 mp3 但我需要 mp3 和 ogg 文件支持才能以 html5 播放音乐 那么 有没有可以将mp3转换为ogg的php脚本呢 使用 ffmpeg 您可以直接从 php 脚本执行命令
  • 使用 PHP 将 SVG 图像转换为 PNG

    我正在开发一个网络项目 该项目涉及动态生成的美国地图 根据一组数据为不同的州着色 这个 SVG 文件为我提供了一张很好的美国空白地图 并且很容易更改每个州的颜色 困难在于 IE 浏览器不支持 SVG 因此为了让我使用 svg 提供的便捷语法
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • 服务器响应中的“连接:保持活动状态”

    我正在尝试建立从 Silverlight 应用程序到 Apache 服务器托管的 PHP 页面的 HTTP 持久连接 即无需为每个 HTTP 请求创建新的 TCP 连接 为此 我需要网络服务器发送其 HTTP 响应 并将 Connectio
  • cakephp 1.1 与 php 5.3

    我刚刚从 php 5 1 升级到 5 3 之前在我的服务器上使用 cakephp 1 1 自从升级 或者可能更早 我不确定 以来 我收到以下错误 任何人都可以透露一些信息 Deprecated Assigning the return va
  • PHP:在多维数组中查找相同的键并合并结果

    我有一个多维数组 如下所示 array 0 gt array WS gt array id gt 2 name gt hello 1 gt array SS gt array id gt 1 name gt hello2 2 gt arra
  • 正则表达式替换混合数字+字符串

    我想删除所有包含数字的单词 示例 LW23 London W98 String 从上面的字符串中我唯一想保留的是 London String 这可以用正则表达式来完成吗 我目前正在使用 Python 但 PHP 代码也很好 Thanks E
  • 如何在 Laravel Mix 中将公共路径更改为包含下划线的路径?

    Laravel 5 4 中引入了 Mix 来编译资产并维护资产管道 Mix 默认为您的公共目录被命名public 在许多情况下 包括我的 我的公共目录被称为其他名称 就我而言 是public html 如何更改资源编译到的公共目录 我尝试过
  • Mongodb $push 嵌套数组

    我想向我的嵌套数组添加新数据 我的文档是 username erkin email email protected cdn cgi l email protection password b playlists id 58 name asd
  • 获取目录中最后修改的文件

    有没有办法只选择目录中的最后一个文件 扩展名jpg png gif 或者我是否必须解析整个目录并使用进行检查filemtime 是的 你必须通读它们 但由于目录访问已被缓存 因此您不必真正担心它 files array merge glob
  • 我的 PHP 代码不会将记录插入到 mySQL 数据库表中[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我的网站上
  • 如何使用额外标记输出 wp_list_categories

    我目前正在使用下面的脚本在无序列表中输出我的所有 WordPress 类别 如何获得带有额外标记的输出 ul ul 例如 ul li Category 1 rsaquo li li Category 2 rsaquo li ul 代替 ul
  • 从文本文件 PHP 读取数据

    我只是想知道如何在 php 中读取文本文件 我想让它显示文本文件中的最后 200 个条目 每个条目都在一个新行上 Like John White Jane Does John Does Someones Name 等等 Thanks Use
  • 将单独的月、日和年值转换为时间戳

    我有月份值 1 12 日期值 1 31 和年份值 2010 2011 2012 我还有一个小时值和一个分钟值 我怎样才能把这个给strtotime 它可以以某种方式将其转换为时间戳吗 当您已经知道年月和日期时 为什么将字符串转换为日期 us
  • 将自定义参数传递给 Symfony2 中的自定义 ValidationConstraint

    我正在 Symfony2 中创建一个表单 表格只包含一个book字段允许用户在列表中进行选择Books实体 我需要检查是否选择了Book属于Author我的控制器里有 public class MyFormType extends Abst
  • 使用 Flot、html、PHP 和 MySql 查询绘制多个图表

    我正在尝试使用 Flot html PHP 和 MySql 查询绘制多个图表 但我陷入了困境 因为我找不到在同一个 html 页面中绘制多个 flot 的方法 为简单起见 在数据库 test db3 映像中包含以下字段 表1 用户名 发送邮
  • Slim 3 - 斜杠作为路由参数的一部分

    我需要使用可以包含斜杠 的参数来编写 URL 例如 经典的 hello username 路线 默认情况下 hello Fabien将匹配此路线 但不匹配 hello Fabien Kris 我想问你如何在 Slim 3 框架中做到这一点
  • 如何在php中关闭夏令时

    我有这行代码将夏令时设置为 打开 将其设置为 关闭 的正确方法是什么 is daylight saving On rcmail config dst active bool date I date I 这是一个大写字母 i 当当前默认时区
  • 如何根据另一个下拉列表中的选择动态填充下拉列表中的选项?

    我有一个表 其中包含类别信息 例如产品 我已将它们列在下拉菜单中 现在 我需要做的是 在下一个下拉菜单中列出所选类别的子类别 我希望 javascript 是必需的 但我对 javascript 还不太熟悉 将非常感谢您的帮助 你应该使用
  • 由于未定义符号,PECL solr 未加载:curl_easy_getinfo

    我正在尝试加载 PECL solr 扩展 我尝试使用 pecl install solr 并下载并使用 phpize configure make 来安装它 在这两种情况下 扩展安装时都没有错误 但在 apache 重新启动后 或在命令行上

随机推荐

  • 如何使用 DateTime 类在 PHP 中进行时区转换?

    我正在尝试将当前时间转换为 UTC 并将 UTC 转换为当前时区 这是我所做的 schedule date new DateTime triggerOn new DateTimeZone UTC triggerOn schedule dat
  • 卸载 gcc

    我想通过终端卸载我的 gcc 当我打字时 gcc version 输出是 gcc Ubuntu 5 4 0 6ubuntu1 16 04 4 5 4 0 20160609 Copyright C 2015 Free Software Fou
  • 使用外部模块的类型增强模块声明

    Context 我正在为 NativeScript 制作一个 React 渲染器 即允许您使用 React 声明 NativeScript UI 的库 并且我想为其提供类型 React 的类型已经完全支持 React DOM 即自始至 终都
  • 如何将 sha1() 密码转换为 FOSUserBundle?

    我有一个遗留应用程序 可以使用以下命令对密码进行加密sha1 功能 无盐 现在该网站正在转换为 Symfony2 和 FOSUserBundle 我如何将它们转移到新数据库 我有同样的问题 只需像 iamdto 所解释的那样覆盖编码器 ap
  • 在 ReSharper 中禁用 C# 6.0 支持

    在使用ReSharper时 它建议 为此项目启用C 6 0支持 我愚蠢地点击了它 现在正如广告所宣传的那样 它为我提供了 C 6 0 的建议 然后给了我错误 因为我在这个项目中没有使用 C 6 0 如何禁用 C 6 0 支持 使其恢复到之前
  • 如何在同一个项目中拥有 iOS 应用程序和 OS X 应用程序?

    我见过这个问题 https stackoverflow com questions 4872541 is it possible to have both an ios app and mac app in the same project
  • 可以安装 EGit:缺少要求:Git Team Provider Core

    所以我将 Coldfusion Builder 与 Ecplise 结合使用 我正在尝试在其中安装 EGit 以便我可以执行 Git 操作 我唯一能安装的是 EGit 0 11 1http download ecplise org rele
  • 如何使用 HTML 输入文件类型限制文件类型?

    如何使用 HTML 输入文件类型限制文件类型 我有这个
  • 编程错误:在 django 中同时使用 order_by 和 unique 时

    我有一个如下所示的模型 class ProductScore models Model client models ForeignKey User created models DateTimeField default datetime
  • Django 复合/嵌套/子表单?

    我正在寻找这些 Django 的更新版本超级形式 http code djangoproject com ticket 3706 似乎无法让它在 Django 1 2 中工作 特别是 我希望它能够与 ModelForms 一起使用 我的用例
  • 存储和查询气象数据大数据集的更好方法是什么

    我正在寻找一种便捷的方式来存储和查询大量气象数据 几TB 有关问题中间数据类型的更多信息 之前我一直在寻找 MongoDB 的方向 我自己之前的很多项目都使用过它 而且处理起来很舒服 但最近我发现了HDF5 http en wikipedi
  • 下拉菜单 - jQuery/CSS

    我正在做的下拉菜单有问题 请检查此屏幕截图 http img215 imageshack us img215 8449 hovermenu png http img215 imageshack us img215 8449 hovermen
  • JBoss类加载问题

    我有一个在 tomcat 上完美运行的 Web 应用程序 war 文件 现在我需要让这个相同的应用程序在 JBoss 4 2 2 上运行 同一 JBoss 实例上运行着其他应用程序 问题是当我尝试在 JBoss 上部署 war 应用程序时
  • Java 中是否存在可变的 URL/URI 对象?

    我有一个字符串形式的 URL 我希望对其进行各种修改 具体来说 如果查询字符串中的值已存在 我需要修改它们 如果不存在 则创建它们 在我看来 应该已经有一个现有的类 我可以使用我的 URL 作为字符串来构造该类 该类会将 URL 拆分为其组
  • 在unix中使用sed反转四个字母的长度

    如何反转四个长度的字母sed 例如 the year was 1815 反向至 the raey was 5181 这是我的尝试 cat filename sed s a z a z 2 1 但它并没有按照我的预期工作 不确定是否可以在所有
  • Android-NDK-添加本机支持-NDK 位置在首选项中无效

    我正在尝试使用调试模式 调试为 Android 本机应用程序 控制台说我需要添加本机支持 但是 当我按照说明进行操作时 它显示如下图 我应该如何处理 NDK 位置在首选项中无效 任何意见将是有益的 我对此很陌生 谢谢 该示例是 NDK 示例
  • 为带有附件的电子邮件设置多部分

    从我的应用程序中 我发送带有附件的邮件 完整的代码在这里 public int sendMail MailDraft mailDraftInstance mailInstance path Send the mail String mail
  • 为什么.NET Core DI容器不注入ILogger?

    我正在尝试在基于 NET Core 2 1 的 C 控制台应用程序中登录并运行 我将以下代码添加到我的 DI 声明中 var sc new ServiceCollection sc AddLogging builder gt builder
  • GDB 在 macOS Catalina 上冻结

    我在 mac 上运行了 helloworld 来尝试 GDB 但在输入 run 后输出 New Thread 0x1903 of process 69034 然后就什么也没有了 我等了一个小时了 还是没有任何动静 完成认证并禁用startu
  • 使用 PDO 连接 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 刚刚开始使用 PDO 请解释我的连接