使用PHP将HTML表单连接MySQL数据库时出现未定义变量localhost报错
报错原因与修复方案
- 核心报错原因:你给MySQL连接类传的第一个参数写了
$localhost,$是PHP的变量标识符,如果你没有提前定义过$localhost这个变量,PHP就会抛出未定义变量的报错。 - 修复方法:把
$localhost改成带引号的字符串'localhost'即可,另外你原代码里用的mysql扩展早已被PHP官方废弃,建议替换为mysqli扩展,修改后的第19行代码如下:$conn = new mysqli('localhost', $dbusername, $dbpassword, $dbname);
额外说明:
你遇到的“报错但数据依然能写入”的情况,是因为该报错属于NOTICE级别,默认不会终止代码运行,PHP会自动给未定义的变量赋值为NULL,而你的本地数据库环境恰好会把NULL的主机参数默认解析为localhost,所以连接还能成功,这个属于环境容错的偶然现象,不修复的话换个运行环境大概率会直接连接失败。
内容的提问来源于stack exchange,提问作者Orodje
相关产品推荐
相关产品推荐

