我有一个数据库。如果以前没有构建过,我创建了一个只包含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