Re: [請益] 這樣的 SQL 輸入為何不行?
※ 引述《NetsFan (莫忘初衷)》之銘言:
: <form method="post" name="input_db" action="index.php">
: <input type="text" value="輸入你要的數字" name="db_name1">
: <input type="submit" value="將你輸入的數字寫入資料庫" >
: </form>
: <?php // 這個是連接到資料庫的程式碼
: $get_user_input = $HTTP_POST_VARS['db_name1'];
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: .....
: mysql_select_db(DATABASE); // 選擇哪一個 DB
: mysql_query('Insert Into hey Values("$get_user_input")');
^^^^^^^^^^^^^^^
直接將 POST 或是 GET 取得的資料、不經過濾處理,直接用在
資料庫的查詢上是件危險的事情... 小心被有心人用 SQL Injection 攻擊
此外,如果你要將在字串中插入變數,應該要用 " 而非 '
以上例而言應為:
"INSERT INTO hey VALUES ('$get_user_input')";
或是
"INSERT INTO hey VALUES ('{$get_user_input}')";
或是
'INSERT INTO hey VALUES (' . '\'$get_user_input\'' . ')'; //如果堅持使用 '
....等
有興趣可以多研究一下字串值中 " 和 ' 之間的差異
: $query_string = "Select * From Hey";
: $dbSelect = mysql_query ( $query_string ) or die( "Query failed" );
: ....
: ?>
: 我想要使用者輸入資料 傳到%get_user_input中
: 然後再使用 SQL 指令塞東西進去的時候 使用那個變數
: 可是卻不成功,顯示出來每次都是 0...
: 請問我這個用法有用錯嗎 @@ 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.116.1.239
推
09/29 13:12, , 1F
09/29 13:12, 1F
→
09/29 13:13, , 2F
09/29 13:13, 2F
推
09/29 20:31, , 3F
09/29 20:31, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章