2013-12-17 188 views
-1
$SQL="SELECT first_name FROM people WHERE fname = '$fname' INSERT INTO (first_name) VALUES (fname)"; 

這有什麼問題嗎?試圖插入從用戶定義的變量的值到一個MySQL表Mysql語法錯誤?

警告:mysql_num_rows()預計參數1是資源,在布爾給出d:\瓦帕\ WWW \ Pxxxx將\ process.php上線44

這是錯誤

$ FNAME是定義的變量用戶 FIRST_NAME是我試圖將其插入到列,它是在一個表叫人

+0

如果您需要2個陳述,請進行交易。 – Mihai

+0

用';'分隔兩條語句 – Floris

+3

你想插入什麼?你想插入「SELECT」的結果嗎?你的意思是:'INSERT INTO(first_name)SELECT first_name FROM people where fname ='$ fname''? –

回答

3

你有反轉的順序。好像你正在尋找INSERT ... SELECT語法(見MySQL文檔瀏覽:http://dev.mysql.com/doc/refman/5.6/en/insert-select.html

INSERT INTO target_table (first_name) 
SELECT fname 
FROM people 
WHERE fname = ? 

是從你的例子是什麼表的名稱您試圖將數據插入到目前還不清楚,所以我剛在此處列爲target_table

1

你的SQL語句重新排序是這樣的:

"INSERT INTO people (fname) SELECT '$fname' FROM dual;" 

這將選擇$ FNAME從僞表中的值「雙反」和該值插入「人」。

這也許是更適合:

"INSERT INTO people (fname) VALUES ('$fname');" 

這個片段告訴你一個簡單的插入語句。

注意:請在維基百科上查看SQL注入。您正在編寫的代碼可用於這些類型的攻擊。如果您正在編寫PHP代碼,請查看Prepared Statements和mysqli來防止這些攻擊。