Khi nào sử dụng dấu ngoặc kép, dấu ngoặc kép và dấu ngoặc kép trong MySQL

659
Nate 2012-07-04 15:53.

Tôi đang cố gắng học cách tốt nhất để viết truy vấn. Tôi cũng hiểu tầm quan trọng của việc nhất quán. Cho đến nay, tôi đã sử dụng ngẫu nhiên dấu ngoặc kép, dấu ngoặc kép và dấu ngoặc kép mà không có bất kỳ suy nghĩ thực sự nào.

Thí dụ:

$query = 'INSERT INTO table (id, col1, col2) VALUES (NULL, val1, val2)';

Ngoài ra, trong ví dụ trên, hãy xem xét rằng table, col1, val1, vv có thể được biến.

Tiêu chuẩn cho việc này là gì? Bạn làm nghề gì?

Tôi đã đọc câu trả lời cho những câu hỏi tương tự ở đây trong khoảng 20 phút, nhưng có vẻ như không có câu trả lời chắc chắn cho câu hỏi này.

12 answers

645
Michael Berkowski 2012-07-04 15:57.

Dấu nền sẽ được sử dụng cho các mã định danh bảng và cột, nhưng chỉ cần thiết khi mã định danh là một từ khóa dành riêng cho MySQL hoặc khi mã định danh chứa các ký tự khoảng trắng hoặc các ký tự vượt quá một tập hợp giới hạn (xem bên dưới) Bạn thường nên tránh sử dụng các từ khóa dành riêng làm định danh cột hoặc bảng khi có thể, tránh vấn đề trích dẫn.

Dấu ngoặc kép nên được sử dụng cho các giá trị chuỗi như trong VALUES()danh sách. Dấu ngoặc kép cũng được MySQL hỗ trợ cho các giá trị chuỗi, nhưng dấu ngoặc kép được các RDBMS khác chấp nhận rộng rãi hơn, vì vậy bạn nên sử dụng dấu ngoặc kép thay vì dấu ngoặc kép.

MySQL cũng mong đợi DATEDATETIMEcác giá trị theo nghĩa đen được trích dẫn đơn dưới dạng chuỗi như '2001-01-01 00:00:00'. Tham khảo tài liệu Date and Time Literals để biết thêm chi tiết, cụ thể là các lựa chọn thay thế cho việc sử dụng dấu gạch ngang -làm dấu phân cách phân đoạn trong chuỗi ngày.

Vì vậy, sử dụng ví dụ của bạn, tôi sẽ trích dẫn kép chuỗi PHP và sử dụng dấu ngoặc kép trên các giá trị 'val1', 'val2'. NULLlà một từ khóa MySQL, và một giá trị (không) đặc biệt, và do đó không được trích dẫn.

Không có mã định danh bảng hoặc cột nào trong số này là các từ dành riêng hoặc sử dụng các ký tự yêu cầu trích dẫn, nhưng tôi đã trích dẫn chúng bằng dấu gạch ngược (thêm về điều này sau ...).

Các hàm có nguồn gốc từ RDBMS (ví dụ: NOW()trong MySQL) không nên được trích dẫn, mặc dù các đối số của chúng tuân theo cùng một chuỗi hoặc quy tắc trích dẫn mã định danh đã được đề cập.

Backtick (`)
bảng & cột ───────┬──────┬───┬──┬──┬─────┬──┬─────┬──┬────┬──┬ ────────┐
                      ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
$ query = " INSERT INTO` table` (`id`,` col1`, `col2`,` date`, `updated`)
                       VALUES (NULL, 'val1', 'val2', '2001-01-01', NOW ()) ";
                               ↑ ↑ ↑ 
Từ khóa chưa được trích dẫn ─────┴┴┴┘ │ │ │ │ │ │ │││││
Các chuỗi được trích dẫn đơn (') ────────────┴─────┴──┴────┘ │ │ │││││
Trích dẫn đơn (') NGÀY ───────────────────────────── ┴ ││││ │
Chức năng chưa được trích dẫn ───────────────────────────────────────────    

Nội suy biến

Các mẫu trích dẫn cho các biến không thay đổi, mặc dù nếu bạn định nội suy các biến trực tiếp trong một chuỗi, thì nó phải được trích dẫn kép trong PHP. Chỉ cần đảm bảo rằng bạn đã thoát đúng các biến để sử dụng trong SQL. ( Làm cách nào để ngăn chặn việc đưa SQL vào PHP? ).

// Điều tương tự với một số thay thế biến
// Ở đây, một tên bảng biến $ table là dấu ngoặc kép và các biến
// trong danh sách GIÁ TRỊ được trích dẫn đơn 
$ query = "INSERT INTO` $ table` (`id`,` col1`, `col2`,` date`) VALUES (NULL, '$ val1' , '$ val2' , '$ date' ) ";

Báo cáo chuẩn bị

Khi làm việc với các câu lệnh đã chuẩn bị, hãy tham khảo tài liệu để xác định xem có phải trích dẫn phần giữ chỗ của câu lệnh hay không. Các API phổ biến nhất hiện có trong PHP, PDO và MySQLi, mong đợi các trình giữ chỗ không được trích dẫn , cũng như hầu hết các API câu lệnh được chuẩn bị bằng các ngôn ngữ khác:

// PDO example with named parameters, unquoted
$query = "INSERT INTO `table` (`id`, `col1`, `col2`, `date`) VALUES (:id, :col1, :col2, :date)";

// MySQLi example with ? parameters, unquoted
$query = "INSERT INTO `table` (`id`, `col1`, `col2`, `date`) VALUES (?, ?, ?, ?)";

Các ký tự yêu cầu trích dẫn backtick trong số nhận dạng:

Theo tài liệu MySQL , bạn không cần phải trích dẫn các số nhận dạng (dấu nền) bằng cách sử dụng bộ ký tự sau:

ASCII: [0-9,a-z,A-Z$_](chữ cái Latinh cơ bản, chữ số 0-9, đô la, dấu gạch dưới)

Bạn có thể sử dụng các ký tự ngoài tập hợp đó làm mã định danh bảng hoặc cột, bao gồm cả khoảng trắng chẳng hạn, nhưng sau đó bạn phải trích dẫn (dấu gạch ngược) chúng.

Ngoài ra, mặc dù các số là các ký tự hợp lệ cho các số nhận dạng, các số nhận dạng không thể chỉ chứa các số. Nếu chúng làm vậy, chúng phải được bọc trong các thanh chống lưng.

125
Salman A 2013-01-03 04:17.

Có hai loại dấu ngoặc kép trong MySQL:

  1. ' để bao quanh các ký tự chuỗi
  2. ` để bao quanh các số nhận dạng như tên bảng và cột

Và sau "đó là một trường hợp đặc biệt. Nó có thể được sử dụng cho một trong các mục đích nêu trên tại một thời điểm tùy thuộc vào máy chủ MySQL sql_mode:

  1. Theo mặc định , "ký tự có thể được sử dụng để bao gồm các ký tự chuỗi giống như'
  2. Trong ANSI_QUOTESchế độ, "ký tự có thể được sử dụng để bao gồm các số nhận dạng giống như`

Truy vấn sau sẽ tạo ra các kết quả (hoặc lỗi) khác nhau tùy thuộc vào chế độ SQL:

SELECT "column" FROM table WHERE foo = "bar"

ANSI_QUOTES bị vô hiệu hóa

Truy vấn sẽ chọn chuỗi ký tự "column"trong đó cột foobằng chuỗi"bar"

ANSI_QUOTES đã được bật

Truy vấn sẽ chọn cột columntrong đó cột foobằng cộtbar

Khi nào dùng cái gì

  • Tôi khuyên bạn nên tránh sử dụng "để mã của bạn trở nên độc lập với các chế độ SQL
  • Luôn trích dẫn số nhận dạng vì đó là một thực tiễn tốt (khá nhiều câu hỏi trên SO thảo luận về điều này)
32
Chris Trahey 2012-07-04 16:03.

(Có những câu trả lời hay ở trên liên quan đến bản chất SQL của câu hỏi của bạn, nhưng điều này cũng có thể phù hợp nếu bạn chưa quen với PHP.)

Có lẽ điều quan trọng cần đề cập là PHP xử lý các chuỗi được trích dẫn đơn và kép khác nhau ...

Các chuỗi được trích dẫn đơn là 'chữ' và khá nhiều chuỗi WYSIWYG. Các chuỗi được trích dẫn kép được PHP diễn giải để có thể thay thế biến (các dấu gạch ngược trong PHP không phải là các chuỗi chính xác; chúng thực thi một lệnh trong shell và trả về kết quả).

Ví dụ:

$foo = "bar";
echo 'there is a $foo'; // There is a $foo
echo "there is a $foo"; // There is a bar
echo `ls -l`; // ... a directory list
23
Starx 2012-07-04 16:00.

Dấu gạch chéo thường được sử dụng để chỉ ra identifiervà cũng như an toàn khi vô tình sử dụng Từ khóa dành riêng .

Ví dụ:

Use `database`;

Ở đây các dấu gạch ngược sẽ giúp máy chủ hiểu rằng databasetrên thực tế là tên của cơ sở dữ liệu, không phải là định danh cơ sở dữ liệu.

Tương tự có thể được thực hiện cho tên bảng và tên trường. Đây là một thói quen rất tốt nếu bạn bọc mã nhận dạng cơ sở dữ liệu của mình bằng các dấu gạch ngược.

Kiểm tra câu trả lời này để hiểu thêm về dấu gạch ngược.


Bây giờ là về Dấu ngoặc kép & Dấu ngoặc kép (Michael đã đề cập đến điều đó).

Tuy nhiên, để xác định một giá trị, bạn phải sử dụng dấu nháy đơn hoặc dấu ngoặc kép. Hãy xem một ví dụ khác.

INSERT INTO `tablename` (`id, `title`) VALUES ( NULL, title1);

Ở đây tôi đã cố tình quên kết thúc title1bằng dấu ngoặc kép. Bây giờ máy chủ sẽ lấy title1tên cột (tức là một định danh). Vì vậy, để chỉ ra rằng đó là một giá trị, bạn phải sử dụng dấu ngoặc kép hoặc dấu nháy đơn.

INSERT INTO `tablename` (`id, `title`) VALUES ( NULL, 'title1');

Giờ đây, kết hợp với PHP, dấu ngoặc kép và dấu nháy đơn giúp thời gian viết truy vấn của bạn dễ dàng hơn nhiều. Hãy xem phiên bản sửa đổi của truy vấn trong câu hỏi của bạn.

$query = "INSERT INTO `table` (`id`, `col1`, `col2`) VALUES (NULL, '$val1', '$val2')";

Bây giờ, sử dụng dấu ngoặc kép trong PHP, bạn sẽ tạo các biến $val1$val2sử dụng giá trị của chúng, do đó tạo ra một truy vấn hoàn toàn hợp lệ. Giống

$val1 = "my value 1";
$val2 = "my value 2";
$query = "INSERT INTO `table` (`id`, `col1`, `col2`) VALUES (NULL, '$val1', '$val2')";

sẽ làm

INSERT INTO `table` (`id`, `col1`, `col2`) VALUES (NULL, 'my value 1', 'my value 2')
17
Kumar Rakesh 2017-01-04 01:42.

Trong MySQL, các biểu tượng này được sử dụng để phân định một truy vấn `, ", '().

  1. "hoặc 'được sử dụng để bao quanh các giá trị giống như chuỗi "26-01-2014 00:00:00"hoặc '26-01-2014 00:00:00'. Những biểu tượng này chỉ dành cho các chuỗi, chức năng không tổng hợp thích now, sumhoặc max.

  2. ` được sử dụng để bao quanh tên bảng hoặc cột, ví dụ: select `column_name` from `table_name` where id='2'

  3. ()chỉ cần bao gồm các phần của một truy vấn, ví dụ select `column_name` from `table_name` where (id='2' and gender='male') or name='rakesh'.

13
xdazz 2012-07-04 16:16.

Các ký tự chuỗi trong MySQL và PHP là giống nhau.

Chuỗi là một chuỗi các byte hoặc ký tự, được bao trong các ký tự dấu nháy đơn (“'”) hoặc dấu nháy kép (“" ”).

Vì vậy, nếu chuỗi của bạn chứa dấu ngoặc kép, thì bạn có thể sử dụng dấu ngoặc kép để trích dẫn chuỗi hoặc nếu nó chứa dấu ngoặc kép, thì bạn có thể sử dụng dấu ngoặc kép để trích dẫn chuỗi. Nhưng nếu chuỗi của bạn chứa cả dấu ngoặc kép và dấu ngoặc kép, bạn cần phải thoát khỏi chuỗi được sử dụng để trích dẫn chuỗi.

Hầu hết, chúng ta sử dụng dấu ngoặc kép cho giá trị chuỗi SQL, vì vậy chúng ta cần sử dụng dấu ngoặc kép cho một chuỗi PHP.

$query = "INSERT INTO table (id, col1, col2) VALUES (NULL, 'val1', 'val2')";

Và bạn có thể sử dụng một biến trong chuỗi dấu ngoặc kép của PHP:

$query = "INSERT INTO table (id, col1, col2) VALUES (NULL, '$val1', '$val2')";

Nhưng nếu $val1hoặc $val2chứa các dấu nháy đơn, điều đó sẽ làm cho SQL của bạn bị sai. Vì vậy, bạn cần phải thoát khỏi nó trước khi nó được sử dụng trong sql; đó là những gì mysql_real_escape_stringdành cho. (Mặc dù một tuyên bố chuẩn bị tốt hơn.)

12
vipul sorathiya 2015-06-17 00:25.

Kết hợp giữa PHP và MySQL, dấu ngoặc kép và dấu nháy đơn giúp thời gian viết truy vấn của bạn dễ dàng hơn rất nhiều.

$query = "INSERT INTO `table` (`id`, `col1`, `col2`) VALUES (NULL, '$val1', '$val2')";

Bây giờ, giả sử bạn đang sử dụng biến bài đăng trực tiếp vào truy vấn MySQL, hãy sử dụng nó theo cách này:

$query = "INSERT INTO `table` (`id`, `name`, `email`) VALUES (' ".$_POST['id']." ', ' ".$_POST['name']." ', ' ".$_POST['email']." ')";

Đây là phương pháp hay nhất để sử dụng các biến PHP vào MySQL.

12
Noname 2017-01-28 21:35.

Đã có rất nhiều câu trả lời hữu ích ở đây, nhìn chung đạt đến hai điểm.

  1. BACKTICKS (`) được sử dụng xung quanh tên định danh.
  2. SINGLE QUOTES (') được sử dụng xung quanh các giá trị.

VÀ như @MichaelBerkowski đã nói

Dấu gạch ngược sẽ được sử dụng cho các số nhận dạng bảng và cột, nhưng chỉ cần thiết khi số nhận dạng là một MySQLtừ khóa dành riêng hoặc khi số nhận dạng chứa các ký tự khoảng trắng hoặc các ký tự vượt quá một tập hợp giới hạn (xem bên dưới) Bạn thường nên tránh sử dụng các từ khóa dành riêng vì định danh cột hoặc bảng khi có thể, tránh vấn đề trích dẫn.

Có một trường hợp mặc dù số nhận dạng không thể là một từ khóa dành riêng hoặc chứa khoảng trắng hoặc các ký tự vượt quá tập hợp giới hạn nhưng nhất thiết phải yêu cầu dấu gạch ngược xung quanh chúng.

THÍ DỤ

123E10là tên định danh hợp lệ nhưng cũng là một INTEGERchữ hợp lệ .

[Không đi sâu vào chi tiết cách bạn có được một tên định danh như vậy], Giả sử tôi muốn tạo một bảng tạm thời có tên 123456e6.

Không có LỖI nào trên que tính ngược.

DB [XXX]> create temporary table `123456e6` (`id` char (8));
Query OK, 0 rows affected (0.03 sec)

LỖI khi không sử dụng backticks.

DB [XXX]> create temporary table 123451e6 (`id` char (8));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '123451e6 (`id` char (8))' at line 1

Tuy nhiên, 123451a6là một tên định danh hoàn toàn tốt (không có dấu tích phía sau).

DB [XXX]> create temporary table 123451a6 (`id` char (8));
Query OK, 0 rows affected (0.03 sec)

Điều này là hoàn toàn bởi vì 1234156e6nó cũng là một cấp số nhân.

10
diEcho 2012-07-04 16:03.

Nếu cột và giá trị của bảng là biến thì có hai cách:

Với dấu ngoặc kép "", truy vấn hoàn chỉnh:

$query = "INSERT INTO $table_name (id, $col1, $col2)
                 VALUES (NULL, '$val1', '$val2')";

Hoặc là

 $query = "INSERT INTO ".$table_name." (id, ".$col1.", ".$col2.")
               VALUES (NULL, '".$val1."', '".$val2."')";

Với các dấu ngoặc kép '':

$query = 'INSERT INTO '.$table_name.' (id, '.$col1.', '.$col2.')
             VALUES (NULL, '.$val1.', '.$val2.')';

Sử dụng dấu tích quay lại ``khi tên cột / giá trị tương tự với từ khóa dành riêng cho MySQL.

Lưu ý: Nếu bạn đang biểu thị một tên cột với một tên bảng thì hãy sử dụng dấu tích lùi như sau:

`table_name`. `column_name` <- Lưu ý: loại trừ các . dấu tích sau.

8
john igneel 2015-07-09 20:21.

Dấu ngoặc kép nên được sử dụng cho các giá trị chuỗi như trong danh sách VALUES ().

Dấu gạch chéo thường được sử dụng để chỉ ra một số nhận dạng và cũng như an toàn khi vô tình sử dụng các từ khóa dành riêng.

Kết hợp giữa PHP và MySQL, dấu ngoặc kép và dấu nháy đơn giúp thời gian viết truy vấn của bạn dễ dàng hơn rất nhiều.

3
Funk Forty Niner 2018-02-19 12:10.

Bên cạnh tất cả các câu trả lời (được giải thích rõ ràng), không có câu nào sau đây được đề cập và tôi thường xuyên truy cập phần Hỏi & Đáp này.

Tóm lại; MySQL cho rằng bạn muốn làm toán trên bảng / cột của riêng nó và diễn giải các dấu gạch ngang như "e-mail" là e dấu trừ mail .


Tuyên bố từ chối trách nhiệm: Vì vậy, tôi nghĩ rằng tôi sẽ thêm câu trả lời này như một loại câu trả lời "FYI" cho những người hoàn toàn mới làm việc với cơ sở dữ liệu và những người có thể không hiểu các thuật ngữ kỹ thuật được mô tả.

1
NAVIN 2018-08-22 20:47.

Máy chủ SQL và MySQL, PostgreySQL, Oracle không hiểu dấu ngoặc kép ("). Vì vậy, truy vấn của bạn không được có dấu ngoặc kép (") và chỉ nên sử dụng dấu ngoặc kép (').

Back-trip (`) là tùy chọn để sử dụng trong SQL và được sử dụng cho tên bảng, tên db và tên cột.

Nếu bạn đang cố gắng viết truy vấn trong back-end của mình để gọi MySQL thì bạn có thể sử dụng dấu ngoặc kép (") hoặc dấu nháy đơn (') để gán truy vấn cho một biến như:

let query = "select id, name from accounts";
//Or
let query = 'select id, name from accounts';

Nếu là một wherecâu lệnh trong truy vấn của bạn và / hoặc cố gắng tìm insertmột giá trị và / hoặc một updategiá trị là chuỗi, hãy sử dụng một dấu nháy đơn (') cho các giá trị này như:

let querySelect = "select id, name from accounts where name = 'John'";
let queryUpdate = "update accounts set name = 'John' where id = 8";
let queryInsert = "insert into accounts(name) values('John')";

//Please not that double quotes are only to be used in assigning string to our variable not in the query
//All these below will generate error

let querySelect = 'select id, name from accounts where name = "John"';
let queryUpdate = 'update accounts set name = "John" where id = 8';
let queryInsert = 'insert into accounts(name) values("John")';

//As MySQL or any SQL doesn't understand double quotes("), these all will generate error.

Nếu bạn muốn tránh nhầm lẫn này khi sử dụng dấu ngoặc kép (") và dấu ngoặc kép ('), bạn nên kết hợp với dấu nháy đơn ('), điều này sẽ bao gồm dấu gạch chéo ngược () như:

let query = 'select is, name from accounts where name = \'John\'';

Vấn đề với dấu ngoặc kép (") hoặc dấu nháy đơn (') phát sinh khi chúng ta phải gán một số giá trị động và thực hiện một số nối chuỗi như:

let query = "select id, name from accounts where name = " + fName + " " + lName;
//This will generate error as it must be like name = 'John Smith' for SQL
//However our statement made it like name = John Smith

//In order to resolve such errors use
let query = "select id, name from accounts where name = '" + fName + " " + lName + "'";

//Or using backslash(\)
let query = 'select id, name from accounts where name = \'' + fName + ' ' + lName + '\'';

Nếu cần thêm thông tin, hãy làm theo dấu ngoặc kép trong JavaScript

Related questions

MORE COOL STUFF

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett đã bất chấp những lời khuyên hẹn hò điển hình khi cô gặp chồng mình.

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Michael Sheen là một diễn viên phi lợi nhuận nhưng chính xác thì điều đó có nghĩa là gì?

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Ngôi sao của Hallmark Colin Egglesfield chia sẻ về những cuộc gặp gỡ với người hâm mộ ly kỳ tại RomaDrama Live! cộng với chương trình INSPIRE của anh ấy tại đại hội.

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Bạn sẽ phải phủi sạch đầu đĩa Blu-ray hoặc DVD để xem tại sao Northern Exposure trở thành một trong những chương trình nổi tiếng nhất của thập niên 90.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

8 công dụng tuyệt vời của Baking Soda và Giấm

8 công dụng tuyệt vời của Baking Soda và Giấm

Bạn biết đấy, hai sản phẩm này là nguồn điện để làm sạch, riêng chúng. Nhưng cùng với nhau, chúng có một loạt công dụng hoàn toàn khác.

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Thủy điện rất cần thiết cho lưới điện của Hoa Kỳ, nhưng nó chỉ tạo ra năng lượng khi có nước di chuyển. Bao nhiêu nhà máy thủy điện có thể gặp nguy hiểm khi các hồ và sông cạn kiệt?

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Tóc tỉa từ các tiệm và các khoản quyên góp cá nhân có thể được tái sử dụng như những tấm thảm thấm dầu và giúp bảo vệ môi trường.

Một thương hiệu kế thừa khác có được cuộc sống mới khi những người chủ mới của Black Opal có được Hội chợ thời trang

Một thương hiệu kế thừa khác có được cuộc sống mới khi những người chủ mới của Black Opal có được Hội chợ thời trang

Desiree Rogers, trái, và Cheryl Mayberry McKissack Chuyển sang, Fenty Beauty và Pat McGrath, có một đế chế làm đẹp mới do phụ nữ làm chủ đang trỗi dậy. Sau thương vụ mua lại mỹ phẩm Black Opal vào tháng 9, đội ngũ quyền lực của Giám đốc điều hành công ty Desiree Rogers và Chủ tịch Cheryl Mayberry McKissack đã thông báo mua lại thương hiệu làm đẹp tiên phong Fashion Fair từ người sáng lập Johnson Publishing Company (JPC).

Ngoài việc trở nên vô nghĩa, các bên bộc lộ giới tính giờ đây đã trở nên chết người

Ngoài việc trở nên vô nghĩa, các bên bộc lộ giới tính giờ đây đã trở nên chết người

Đối với những người có quá nhiều thời gian, tiệc tiết lộ giới tính là một cách thú vị để không cần áp đặt những định kiến ​​hạn chế lên thai nhi trước một đối tượng bạn bè giả vờ quan tâm một cách lịch sự. Tuy nhiên, việc chỉ dựa vào những chiếc bánh nướng có màu nhân tạo để biểu thị một tiếng hoo-ha hoặc một đứa trẻ đi tè đã trở nên xa xỉ trong các bậc cha mẹ trên Instagram.

Kirstjen Nielsen đang cố gắng đổi mới bản thân với tư cách là một người phụ nữ 'nói ra sự thật cho sức mạnh'

Kirstjen Nielsen đang cố gắng đổi mới bản thân với tư cách là một người phụ nữ 'nói ra sự thật cho sức mạnh'

Hôm thứ Tư, cựu Bộ trưởng An ninh Nội địa Kirstjen Nielsen vì một lý do nào đó đã được đưa ra một diễn đàn để phát biểu tại Hội nghị thượng đỉnh Những người phụ nữ quyền lực nhất của Fortune. Và có thể đoán trước được, người phụ nữ giám sát các nỗ lực (đang diễn ra) của chính quyền Trump nhằm chia cắt các gia đình ở biên giới đã sử dụng thời gian của mình như một cơ hội để tự bảo vệ mình và tự nhận mình là người — và hãy hít thở sâu ở đây — “đã nói sự thật với quyền lực.

Toyota Racing Development sẽ cho ra mắt Supra 3000GT Concept, Massive Wing vào tháng tới

Toyota Racing Development sẽ cho ra mắt Supra 3000GT Concept, Massive Wing vào tháng tới

Vì thế hệ mới nhất của chiếc xe điều chỉnh được yêu thích trên thế giới hiện đã có mặt tại đây, nên chỉ có điều kiện là Toyota Racing Development sẽ đưa phiên bản Supra thế hệ thứ năm sửa đổi của riêng mình đến SEMA vào tháng tới. Toyota đã cho chúng tôi một gợi ý về những gì sẽ xảy ra trong tuần này: một chiếc Concept GR Supra 3000GT hiện đại.

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa. Từ Hollywood đến New York và mọi nơi ở giữa, hãy xem các ngôi sao yêu thích của bạn đang làm gì!

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

Các nhà điều tra đang xem xét liệu nhóm và nghi phạm có biết nhau trước vụ tấn công hay không

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Vụ kiện, nêu tên một số học khu, lập luận rằng dự luật "Không nói đồng tính" được ban hành gần đây của Florida "có hiệu quả im lặng và xóa bỏ học sinh và gia đình LGBTQ +"

Đường băng hạ cánh

Đường băng hạ cánh

Cuối hè đầu thu là mùa hoài niệm. Những chiếc đèn đường chiếu ánh sáng của chúng qua những con đường đẫm mưa, và những chiếc lá dưới chân - màu đỏ cam tắt trong bóng chạng vạng - là lời nhắc nhở về những ngày đã qua.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Vào năm 2021, tôi khuyến khích bạn suy nghĩ lại mọi thứ bạn biết về khách hàng mà bạn phục vụ và những câu chuyện bạn kể cho họ. Lùi lại.

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Vào ngày sinh nhật thứ 9 của Felix The Cat, tôi nhớ về một trong những mất mát lớn nhất trong cuộc đời trưởng thành của tôi - Sophie của tôi vào năm 2013. Tôi đã viết bài luận này và chia sẻ nó trên nền tảng này một thời gian ngắn vào năm 2013.

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Tôi ghét từ "tàu đắm". Mọi người cảm thấy thoải mái trong la bàn đạo đức của riêng mình, và khi làm như vậy, họ thấy mình vượt qua sự phán xét.

Language