2014-02-23 51 views
-3

我想讀取和寫入數據庫。下面是代碼我迄今:PHP的MySQL - 錯誤:沒有選擇數據庫

$mysql = mysqli_connect("example.com", "johndoe", "abc123"); // replace with actual credidentials 
$sql = "CREATE DATABASE IF NOT EXISTS dbname"; 
if (!mysqli_query($mysql, $sql)) { 
    echo "Error creating database: " . mysqli_error($mysql); 
} 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
mysqli_close($mysql); 
$mysql = mysqli_connect("example.com", "johndoe", "abc123", "dbname"); // replace with actual credidentials 
$sql = "CREATE TABLE IF NOT EXISTS Users(ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(ID), username CHAR(15), password CHAR(15), email CHAR(50))"; 
if (!mysqli_query($mysql, $sql)) { 
    echo "Error creating table: " . mysqli_error($mysql); 
} 
$sql = "INSERT INTO Customers(username, password, email) VALUES(" . $username . ", " . $password . ", " . $email . ")"; 
if (!mysqli_query($mysql, $sql)) { 
    echo "Error: " . mysqli_error($mysql); 
} 
mysqli_close($mysql); 

然而,當我嘗試運行它,它有一個錯誤:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' ,)' at line 1 

有誰告訴我如何解決這一問題?

+3

您必須在創建表之前選擇db .. –

回答

0

首先檢查mysqli_select_db如果它返回false然後創建數據庫。

嘗試這樣的:

$mysql = mysqli_connect("example.com", "johndoe", "abc123") or die(mysqli_connect_error()); // replace with actual credidentials 

if (!mysqli_select_db($mysql,'hardestgame_accounts')) { 
$sql = "CREATE DATABASE IF NOT EXISTS hardestgame_accounts"; 
if (!mysqli_query($mysql, $sql)) { 
    echo "Error creating database: " . mysqli_error($mysql); 
} 
} 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$sql = "CREATE TABLE IF NOT EXISTS Users(ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(ID), username CHAR(15), password CHAR(15), email CHAR(50))"; 
if (!mysqli_query($mysql, $sql)) { 
    echo "Error creating table: " . mysqli_error($mysql); 
} 
mysqli_close($mysql); 

這裏是一個很好的答案:Php mysql create database if not exists

+0

mysqli_select_db()函數不存在。 – enterx

+0

看到這裏:http://bd1.php.net/mysqli_select_db –

+0

是不是我所做的? –

0

在數據庫連接和表創建之間嘗試使用mysql_select_db

此外,mysql_已過時,請使用mysqli_代替

0

你缺少mysqli_connect數據庫()調用

$link = mysqli_connect("hostname","username","password","database") or die("Error " . mysqli_error($link)); 
1

check syntax of mysqli,它需要4 parameters.You還必須提供數據庫名。

$link = mysqli_connect("myhost","myuser","mypassw","my_db"); 
0

顯然答案是你的錯誤。你沒有選擇任何數據庫。使用此函數時,mysqli_connect指定要連接的數據庫。

以下是函數的語法:http://www.w3schools.com/Php/func_mysqli_connect.asp

1)你的應用程序

2)指定你要選擇的數據庫mysqli_connect之外創建數據庫。

您還可以使用另一個名爲mysqli_select_db的函數。你可以在這裏找到聯繫:http://www.w3schools.com/php/func_mysqli_select_db.asp

正如評論中所述,如果您正在本地運行,您還需要用您的IP地址替換:「example.com」,如果您沒有更改端口,請將其替換爲127.0.0.1:3306當你用你的數據庫帳戶安裝你的mysql數據庫/「johndoe」時,你可以用你的root帳戶密碼DEFAULT:「」將它更改爲「root」/「abc123」。

祝你好運!

0

使用`反向數據庫保留字... 您的表名是MYSQL的保留字... 更改您的表名稱。

相關問題