这是因为你混合mysqli
和mysql
API中config.php
它结了根本没有连接
mysqli_connect($db_hostname, $db_username, $db_password)
mysql_select_db($db_database)
使用mysqli能够正确连接数据库(这很明显Ÿ更好的使用,因为mysql_*
功能已被弃用)做这样的事情:
$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 is
如果你在config.php中连接,你为什么要在createtable.php中重新连接? – MatthewMcGovern
你提出了一个很好的观点,删除了它,但它仍然在输出 无法选择定义的数据库:拒绝用户''@'localhost'到数据库'testdb' 这告诉我它仍然无法发送用户名root到数据库,我不明白为什么 –
看看法比奥的答案,它应该解决问题。 – MatthewMcGovern