我刚开始编写我自己的脚本大约一个小时前,我遇到了一个错误,我不确定如何修复,它似乎一切都正确解析,除了用户名,由于某些原因,当我执行我的PHP table create脚本时,它没有解析来自config.php的用户名,而是执行没有用户名的脚本。
我把代码放在phpcodecheker.com/上,它没有给我任何东西,甚至没有任何警告,它真的让我很困惑,代码对我来说看起来很好,但我在这方面相当新手,所以我可能遗漏了一些很大的东西,任何帮助都会非常感谢。
为什么这段代码在尝试连接时不能将用户名解析为createtable.php?
有问题的代码片段;堆栈格式化代码块的方式让我非常困惑,所以我将使用pastebin
发布于 2013-05-31 16:20:58
这是因为您在config.php中混合了mysqli和mysql api,最终根本没有连接。
mysqli_connect($db_hostname, $db_username, $db_password)
mysql_select_db($db_database) 要使用mysqli扩展到数据库的正确连接(由于mysql_*函数已被弃用,使用mysqli显然更好),请执行以下操作:
$mysqli = new mysqli('localhost', 'fake_user', 'my_password', 'my_db');
if ($mysqli->connect_errno) {
die('Connect Error: ' . $mysqli->connect_errno);
}你可以查看documentation here
我想补充的是,您可以在任何其他脚本中使用来自config.php的连接。
require('config.php');因此,您的creatables.php将如下所示
require("config.php");
$sql="CREATE TABLE quoter (
id int NOT NULL AUTO_INCREMENT,
quote text NOT NULL,
quoteby CHAR(50) NOT NULL,
PIMARY KEY (id)
)";
if (mysqli_query($mysqli,$sql))
{
echo "Table 'quoter' was created sucessfully";
}
else
{
echo "Error creating table 'quoter': ".mysqli_error($mysqli);
}和你的config.php
$mysqli = new mysqli('localhost', 'fake_user', 'my_password', 'my_db');
if ($mysqli->connect_errno) {
die('Connect Error: ' . $mysqli->connect_errno);
}我希望您注意到,$mysqli是处理连接的参数,因此在数据库中执行操作时需要传递此参数,例如
mysqli_query($mysqli,$sql);
//^here it ishttps://stackoverflow.com/questions/16852769
复制相似问题