我有一个数据库。如果之前没有构建,我已经创建了一个只包含 DB 中的一行的表。
为什么它只有 1 行是我只是用它来保存一些信息。
有一个字段TYPE NVARCHAR(100)
我想用它来存储 session id,这让我很头疼:
似乎我什至无法正确地插入(我phpmyadmin
用来检查,它是空白的)和更新(语法错误...)它使用从 获得的会话 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
afterINSERT
或UPDATE
时,它是空白的;
但如果我这样做:
$vector=mysql_fetch_array(mysql_query("SELECT TABLES LIKE 'trans_vector'"));
,echo $vector[sid]
然后打印在网页上。
另一个问题是:
使用UPDATE
上面的语句,我总是得到这样的错误:
“未知列xxxxxx....(返回了一些会话ID,似乎总是先翻译它并将其放入SQL语句中,**将其视为列NAME**这不是我想要的!)”
我在 CREATE 语句中尝试了一些 TYPE,以及 UPDATE 语句的许多语法(一切!!!),但它总是给出这个错误。
我正在处理'
包含一个变量的字符串表示,其中后者的值实际上是我想要的......也许问题是由 CREATE 中的类型和UPDATE
语句中的字符串表示引起的?
CAST()
陈述应该对我有帮助吗?
希望你能帮我处理这个问题......并可能列出一些关于此类问题的真实参考PHP
?
非常感谢!!