2017-08-17 105 views
0

我的MySQL数据库是空的,没有创建表和数据写在它上,请帮助,谢谢!这里是,不好意思我是一个新手:我的查询有什么问题?

$servername = "server"; 
$username = "username"; 
$password = "pass"; 
$dbname = "db name"; 
// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
die("Connection failed: " . mysqli_connect_error()); 
} 

// sql to create table 
$sql = "CREATE TABLE IF NOT EXISTS data (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
link text NOT NULL, 
title text NOT NULL, 
description text NOT NULL, 
internal_link text NOT NULL, 
eg_date TIMESTAMP 
)ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1"; 
$sql = "INSERT INTO data (title) 
VALUES 
('$title')"; 

mysqli_close($conn); 
+1

'$ sql =“...”'不会自动执行任何操作 - 就像执行查询一样。 –

+0

你必须执行查询,然后才会发生的事情 –

+0

你刚刚写了查询,没有执行它 –

回答

1

使用本:

$servername = "server"; 
$username = "username"; 
$password = "pass"; 
$dbname = "db name"; 
// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
}else{ 
    // sql to create table 
    $sql = "CREATE TABLE IF NOT EXISTS data (
id INT(6) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 
link text NOT NULL, 
title text NOT NULL, 
description text NOT NULL, 
internal_link text NOT NULL, 
eg_date TIMESTAMP) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1"; 
    if(mysqli_query($conn,$sql)){ 
     $sql = "INSERT INTO data (title) VALUES ('".$title."')"; 
     mysqli_query($conn,$sql); 
    }else{ 
     echo "Error creating table: " . mysqli_error($conn)."<br/>"; 
    } 

} 
mysqli_close($conn); 

但要注意,你应该在临时文件中使用这些代码。只用一次!如果你想把数据放在你的数据库上,那么创建一个像yourpage.php这样的php文件作为你的面板。然后在那里创建一个面板。所以你可以在你的桌子上插入你的数据,非常简单。这里是一个简单的示例:

<?php 
$server_name=''; 
$username=''; 
$password=''; 
$db_name=''; 
$conn=mysqli_connect($server_name,$username,$password,$db_name); 
if(isset($_GET['add_record'])){ 
    if(isset($_GET['title']) && $_GET['title']!=NULL){ 
     if(isset($_GET['description']) && $_GET['description']){ 
      // TODO : for security reason I use these filters for getting strings 
      $title=mysqli_real_escape_string($conn,htmlspecialchars($_GET['title'])); 
      $des=mysqli_real_escape_string($conn,htmlspecialchars($_GET['description'])); 
      $sql="INSERT INTO data(title,description) VALUES ('".$title."','".$des."')"; 
      mysqli_query($conn,$sql); 
      header("location:yourpage.php"); 
     } 
    } 
} 
?> 
<!DOCTYPE html> 
<html> 
<head></head> 
<body> 
<form method="get"> 
    <input type="text" name="title" placeholder="title"> 
    <input type="text" name="description" placeholder="description"> 
    <input type="submit" name="add_record" value="Save it!"> 
</form> 
</body> 
</html> 
+0

的以前的标签谢谢,它的工作原理。但是,如何添加不同的值?例如:$ sql =“INSERT INTO data(title,descruption)VALUES('”。$ title。“')”; <---?为什么临时文件? – Marco

+0

@Marco其实你应该创建一个面板来插入你的数据库的新值。该面板具有get或post方法。每个领域都有一个名字。然后在你的面板的php代码之上,如果你收到帖子或者获得,你应该写下它们的值,并将它们插入到你的数据库中。例如你的php代码应该带$ _POST ['title'],然后在你的sql中用它插入你的表。 – Sonoo

+0

@Marco我会尽快为你写一个答案的样本。 – Sonoo

0
<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "myDB"; 

// Create connection using 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
die("Connection failed: " . mysqli_connect_error()); 
} 

// sql to create table 
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
firstname VARCHAR(30) NOT NULL, 
lastname VARCHAR(30) NOT NULL, 
email VARCHAR(50), 
reg_date TIMESTAMP 
)"; 

// for inserting the values 

if (mysqli_query($conn, $sql)) { 
echo "Table MyGuests created successfully"; 
} else { 
echo "Error creating table: " . mysqli_error($conn); 
} 

    $sql_qry="INSERT INTO data (title) VALUES ('$title')"; 


if (mysqli_query($conn, $sql_qry)) { 
echo "values added successfully"; 
} else { 
echo "data can't be added"; 
}  


mysqli_close($conn); 
?> 

试试这个,改变连接代码的一切与你的代码..好运气。