无法通过PHP连接到MySQL,MySQL可以工作,但不使用mysqli或PDO
在我的connect脚本中,这是可行的,但将被弃用无法通过PHP连接到MySQL,MySQL可以工作,但不使用mysqli或PDO,php,mysql,pdo,mysqli,Php,Mysql,Pdo,Mysqli,在我的connect脚本中,这是可行的,但将被弃用 $dbLink = mysql_connect($dbHostname, $dbUsername, $dbPassword) or die("Unable to connect to MySQL"); $dbselected = mysql_select_db($dbDatabase,$dbLink) or die("Could not select database"); 如果我将其更改为使用PDO或mysqli,它将失败 “未选择任何数据
$dbLink = mysql_connect($dbHostname, $dbUsername, $dbPassword) or die("Unable to connect to MySQL");
$dbselected = mysql_select_db($dbDatabase,$dbLink) or die("Could not select database");
如果我将其更改为使用PDO或mysqli,它将失败
“未选择任何数据库”
在我的测试pc上,或
用户“xxxxxx”@“localhost”的访问被拒绝(使用密码:否)
在我的现场网站上
$dbLink = mysqli_connect($dbHostname, $dbUsername, $dbPassword, $dbDatabase);
使用ini\u get(“mysqli.default\u port”)…
阅读并测试了类似的问题,新命令连接正常,但没有完成任何操作
我的PDO代码是
$dbLink = new PDO('mysql:host=localhost;dbname=mass', $dbUsername, $dbPassword);
我认为您的主要问题是依赖
或die()
来处理错误条件。这不起作用,因为PDO
和mysqli
构造函数都不会返回假值
相反,您应该使用适当级别的错误处理
开发环境
在开发时,请始终在php.ini
文件中使用以下属性
display_errors = On
error_reporting = E_ALL
更改此文件后,可能需要重新启动web服务器(如果正在使用)
mysqli
检查连接错误状态的connect\u errno
属性
$mysqli = new mysqli('localhost', 'username', 'password', 'dbname');
if ($mysqli->connect_errno) {
throw new Exception($mysqli->connect_error, $mysqli->connect_errno);
}
$mysqli->set_charset('utf8');
PDO
如果无法连接,PDO
构造函数应该抛出异常。将错误模式设置为异常意味着任何进一步的错误也将引发异常
$pdo = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8', 'username', 'password', [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
我不会在开发过程中使用任何
try{…}catch
语句,至少在这个初始阶段不会,因为您可能最终隐藏了任何严重错误。这是说使用密码:NO
。这意味着$dbPassword
为空。显示您的pdo连接代码。显示您的pdo或mysqli连接string@asprinmysqli示例已经是问题的一部分。我认为巴尔马击中了要害;密码是empty@Phil啊,对了……错把它当成mysql了……我使用了你们的PDO示例,其中的值是硬编码的。我得到的只是一个空白屏幕。这告诉我这种联系似乎起作用了,以下代码不兼容?@PeterBrooks您是否按照我文章顶部所述设置了错误报告?我的内部PC上出现了完整的错误报告。我刚刚在线检查了错误日志文件,发现与PDO相关的错误:PHP致命错误:在/home/中找不到类“PDO”。。测试mysqli\uuphp时也会出现此错误警告:mysqli\u select\u db()预期参数1为mysqli,字符串在/home.中给出。。PHP版本:5.5.10第一个版本表示您尚未启用PDO扩展。第二个完全没有必要,因为在我的示例中,数据库名称已经包含在mysqli构造函数中