簡體   English   中英

PHP和MySQL中的INSERT查詢語法錯誤

[英]INSERT Query Syntax Error in PHP and MySQL

我無法使用以下PHP語法在myTable MySQL表中插入ID和名稱。 id是整數字段,名稱是varchar字段。

$query="INSERT INTO myTable (id, name) VALUES (".$_SESSION["id"].", ".$_SESSION["name"].");";

以上語法有問題嗎? 按照我的觀點,因為如果插入硬編碼值,則可以正確插入。

是的,您需要使用單引號作為名稱

$query="INSERT INTO myTable (id, name) VALUES (" . $_SESSION["id"] . ", '" . $_SESSION["name"]."');";

另外, 請盡量不要使用字符串concatenation / substitution手動構造查詢 如果$_SESSION (以某種方式)包含可以完全操縱查詢的內容,則可能很危險。

閱讀有關SQL注入以及PHP提供的內容的信息。

將字符串值放在引號內:

$query="INSERT INTO myTable (id, name) VALUES (".$_SESSION["id"].", '".$_SESSION["name"]."');";

字符串應用引號引起來

 $query="INSERT INTO myTable (id, name) VALUES (".$_SESSION["id"].", '".$_SESSION["name"]."');";

name是保留字。 在其周圍放反引號。 另外,您還需要在名稱變量(和id(如果不是整數))兩邊加上引號。

您的查詢應如下所示:

$query="INSERT INTO myTable (id, `name`) VALUES (".$_SESSION["id"].", '".$_SESSION["name"]."')";

用這個

$query="INSERT INTO myTable (id, name) VALUES ({$_SESSION["id"]},'{$_SESSION["name"]}');";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM