這是因爲你混合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