2010-11-26 79 views
0

我正在寫一個PHP腳本,用於對數據庫執行簡單的操作。爲了獲得MySQL查詢,我使用phpmyadmin來生成PHP。當我使用生成的phpmyadmin例如命令創建一個表,這是結果:「」在PHP/MySQL腳本中做什麼

$sql = "CREATE TABLE `pyr`.`table1` (`id` INT NOT NULL) ENGINE = MyISAM COMMENT = \'Some comments...\';"; 

如果我插入這個對我的PHP腳本,這是行不通的。但是,如果我刪除\,它的工作原理。 \是做什麼的?

回答

4

轉義字符',因此它可以在你的字符串寫入。但是,如果您的字符串包含在單引號內,則只需簡單地引用該引號即可。在你的例子中,它包含在報價中,所以你不必逃避簡單的引號!例如:

$a = "I'm a cat"; // no need to escape 
$b = 'I\'m a cat'; // you have to escape, otherwise 
        // the second ' would be interpreted as the end of your string! 
$c = "He says : \"I'm a cat\""; // You have to escape the double quotes 
           // in this case, because your string is enclosed 
           // within double quotes 
0

它會把你的查詢報價

0

這是一種「轉義」引號的方法,因此您可以在帶引號的字符串中使用相同的引號。

正確的例子是

$somestring="This string has \"quotes\" in it"; 

但是這個例子是不正確。沒有必要在該字符串中轉義單引號,因爲它是雙引號。

PHP manual,特別是這部分

要指定一個單引號,用反斜槓()

1

phpMyAdmin的設計了這個查詢逃避它用單引號一起使用:

$sql = 'CREATE TABLE `pyr`.`table1` (`id` INT NOT NULL) 
ENGINE = MyISAM COMMENT = \'Some comments...\';'; 

在這種情況下,反斜槓正確地轉義單引號告訴PHP它們不是str的結尾ING。