2012-04-07 82 views
0

我有以下的PHP查詢...廣東話插入到表PHP的MySQL

INSERT INTO `demographic2` (id, name, first_name, last_name, link, username, birthday, gender, relationship_status, email, timezone, locale, verified, updated_time) VALUES (845450180, Liam Gallagher, Liam, Gallagher, http://www.facebook.com/lia.co.uk, lia.co.uk, 11/25/1989, male, Single, [email protected], 1, en_US, 1, 2012-03-30T21:54:17+0000) 

我不能看到任何錯誤,但由於某些原因,上述不會將數據插入我的表,架構看起來像這樣.. 。

enter image description here

關於字符串文字,我有這個作爲我的插入查詢,如何將添加引號?

$columns = implode(", ",array_keys($userInfo)); 
      $escaped_values = array_map('mysql_real_escape_string', array_values($userInfo)); 
      $values = implode(", ", $escaped_values); 
      $sql = "INSERT INTO `demographic2` ($columns) VALUES ($values)"; 
+1

你需要寫內部報價串,像'VALUES(「845450180」,'利亞姆·加拉格爾...' – safarov 2012-04-07 14:01:59

+0

感謝@safarov,香港專業教育學院更新了我的問題... – Liam 2012-04-07 14:06:54

回答

1

你可以嘗試封閉', '膠水到第二使用破滅(),所以它變成:

$columns = implode(", ",array_keys($userInfo)); 
      $escaped_values = array_map('mysql_real_escape_string', array_values($userInfo)); 
      $values = implode("', '", $escaped_values); 
      $sql = "INSERT INTO `demographic2` ({$columns}) VALUES ('{$values}')"; 
2

閱讀關於string literals在MySQL中的相關信息。你必須用引號來寫字符串,例如:"my text"

+0

感謝@Crozin,香港專業教育學院更新了我的問題.. – Liam 2012-04-07 14:06:18

1

我認爲你需要添加'SomevarcharOrDatetime'

INSERT INTO `demographic2` 
(
    id, name, 
    first_name, 
    last_name, 
    link, 
    username, 
    birthday, 
    gender, 
    relationship_status, 
    email, 
    timezone, 
    locale, 
    verified, 
    updated_time 
) 
VALUES 
(
    845450180, 
    'Liam Gallagher', 
    'Liam', 
    'Gallagher', 
    'http://www.facebook.com/lia.co.uk', 
    'lia.co.uk', 
    '11/25/1989', 
    'male', 
    'Single', 
    '[email protected]', 
    1, 
    'en_US', 
    1, 
    '2012-03-30T21:54:17+0000' 
) 
+0

謝謝@Arion,我更新了我的問題...... – Liam 2012-04-07 14:06:24

1

沒有創建一個SQL查詢字符串引用。

INSERT INTO `demographic2` (id, name, first_name, last_name, link, username, birthday, gender, relationship_status, email, timezone, locale, verified, updated_time) 
VALUES (845450180, "Liam Gallagher", "Liam", "Gallagher", "http://www.facebook.com/lia.co.uk", "lia.co.uk", "11/25/1989", "male", "Single", "[email protected]", "1", "en_US", "1", "2012-03-30T21:54:17+0000") 

此外,爲什麼你不使用DATE列日期(生日)?

0

使用自定義功能,每個值&地圖應用單引號轉義字符串。

$columns = implode(", ",array_keys($userInfo)); 
$escaped_values = array_map('escape_inpt_string', array_values($userInfo)); 
$values = implode(", ", $escaped_values); 
$sql = "INSERT INTO `demographic2` ($columns) VALUES ($values)"; 

function escape_inpt_string($val) { 
    return "'".mysql_real_escape_string($val)."'"; 
} 

乾杯!