我有一個數據庫。如果以前沒有構建過,我創建了一個只包含DB中一行的表。更新數據庫中的會話字段
爲什麼它只有一行是我只是用它來保存一些信息。
有,我想用它來存儲會話ID, 的TYPE NVARCHAR(100)
一個領域,下面就是我的頭痛對我來說:
看來,我甚至不能正確地插入(我用phpmyadmin
檢查並且它是空白的)和UPDATE(語法錯誤...),其會話ID從session_id()
獲得,其作爲string
返回。
下面是有關我的代碼的部分,以我的行動:
//uamip,uamport is in URL;I use $_GET[]
$_SESSION[uamport] = $_GET['uamport'];
$_SESSION[uamip] = $_GET['uamip'];
**$_SESSION[sid] = session_id();**
//construct
$sql="CREATE TABLE trans_vector(
`index` INT NOT NULL AUTO_INCREMENT,
`sid` NVARCHAR(100),
`uamip` CHAR(15),
`uamport` INT,
PRIMARY KEY (`index`)
)" ;
mysql_query($sql);
//insert(first time, so not constructed)
$sql="INSERT INTO trans_vector (sid,uamip,uamport) VALUES(
'$_SESSION[sid]',
'$_SESSION[myuamip]',
'$_SESSION[myuamport]'
)";
mysql_query($sql);
//update(from 2nd time and later, table exists, so I want to update the sid part)
$sql="UPDATE trans_vector SET sid="**.**$_SESSION[sid];
mysql_query($sql)
現在,當我用phpmyadmin檢查sid field
INSERT
或UPDATE
,後是空白;
但是,如果我這樣做:
$vector=mysql_fetch_array(mysql_query("SELECT TABLES LIKE 'trans_vector'"));
和echo $vector[sid]
,那麼它的印刷上的網頁。
另一個問題是:
通過上面的UPDATE
說法,我總是得到這樣的錯誤:
「未知列XXXXXX ......(有些會話ID返回,似乎它總是把它翻譯第一,並把它的SQL語句,**把它當作一個列名**,這不是我想要的!)」
我嘗試了一些類型在CREATE語句,也地段UPDATE語句的語法(一切!!!)但我總是給這個錯誤。
我遇到了'
和包含變量的字符串表示形式,其中後者的值實際上是我想要的......也許問題出現在CREATE語句中,並且在UPDATE
語句中出現字符串表示形式?
應該CAST()
聲明對我有幫助嗎?
希望你能幫助我解決這個問題......並且可能會在PHP
列出一些此類問題的真實參考?
非常感謝!
非常感謝! – 2013-04-05 17:05:22
請問幾個問題: 1.數組變量的索引應該用「或」或引用「是一個字符串」來引用,兩種情況都可以一個例外地使用嗎? 2.你能否爲我解釋''。$ _ SESSION [「sid」]。「'是由php執行者制定的,因爲我仍然無法完全弄清楚它;爲什麼最後兩個人需要?以及如何合理地將兩個[dot]的變量是什麼? 3.什麼是反向工作?當用於引用[table_name]時它如何工作? 4. SQL語句像$ sql =「[bla's]」必須有;在[bla's]結尾?但是SELECT和SHOW不是?它是什麼? – 2013-04-05 17:41:15
1.'和'索引工作正常 2.在SQL查詢中:你通常以「開頭」開始一個php字符串。這使得它很容易使用'作爲SQL字符串。現在,我們需要「開始SQL字符串」,結束php字符串,。向字符串添加一些內容,。添加字符串,「開始字符串」,結束SQL字符串; 3.我想問你爲什麼需要使用「或」進行索引,這是因爲如果你沒有指定字符串,php會檢查常量,這些常量不需要$ 4.技術上你不需要;在SQL查詢中,但是最好用所有的查詢結束; 希望這會有所幫助 – inzenir 2013-04-06 19:33:05