2014-02-23 49 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的保留字... 更改您的表名称。

相关问题