2016-12-03 75 views
0

好吧,試着進入mysql一點,我需要解釋一些東西,因爲我正在閱讀的教程(w3schools)並沒有解釋,也沒有解釋什麼。針對初學者的mysql語法

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

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->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 
)"; 

if ($conn->query($sql) === TRUE) { 
    echo "Table MyGuests created successfully"; 
} else { 
    echo "Error creating table: " . $conn->error; 
} 

$conn->close(); 
?> 
  • 是什麼id int(6)意思?它是否創建了一個具有6個空主鍵的表?
  • varchar(30)在做什麼?
  • conn->query($sql)只看到一個表是否存在?
+2

我必須警告你,w3schools並不是真正的最佳學習場所。從[PHP正確的方式](http://www.phptherightway.com/)開始並從那裏分支出去。如果它教你廢話就像測試'=== TRUE'一樣,你已經在研究真正古怪的習慣,需要加以解決。如果您認真學習應用程序開發,需要花一些時間來研究各種[開發框架](http://codegeekz.com/best-php-frameworks-for-developers/)提供的內容。 [Laravel](http://laravel.com/)特別適合初學者,但功能非常強大。 – tadman

回答

1

實際上,w3並沒有解釋。這裏是所有MySQL類型:

http://www.w3schools.com/sql/sql_datatypes.asp

在那裏你可以看到,INT(6)指最多6位數的整數類型,和varchar(30)是最多30個字符的字符串類型。

$ conn-> query正在創建表。有關什麼「查詢」功能做的更多信息,你可以只是簡單的谷歌「的mysqli查詢」和第一個結果將是這樣的:

http://php.net/manual/en/mysqli.query.php

正如你所看到的,返回值可以是失敗FALSE或真值,具體取決於查詢類型:

失敗時返回FALSE。對於成功的SELECT,SHOW,DESCRIBE或EXPLAIN查詢,mysqli_query()將返回一個mysqli_result對象。對於其他成功的查詢,mysqli_query()將返回TRUE。

+0

所以$ conn->查詢創建表,而不是每當你聲明$ sql?我以爲$ conn-> query只是檢查是否成功創建了tbale。 我正在尋找他們正在創建一個表大聲笑的頁面上的解釋。 – Spaz

+1

$ sql只是一個包含字符串值的變量。它可以是任何東西,但在這種情況下,它是一個MySQL查詢。因此,您將該變量傳遞給執行查詢的查詢函數,並返回一個值,該值基本表示是否存在錯誤(FALSE)(truthy值,TRUE或mysql_object)。 – kasijus

+1

[官方MySQL文檔](http://dev.mysql.com/doc/refman/5.7/en/data-types.html)比任何特定主題上的w3schools都要好得多,應該是第一個檢查的地方。它通常更加具體,而且這些評論非常有用,因爲它們增加了額外的解釋。 – tadman

0

6和30是變量的「長度」,int(6)的範圍是從0到2^6,因爲它的無符號數在varchar中是它可以使用的最大字符數有。 Conn-查詢其執行查詢的命令。