【发布时间】:2013-03-27 20:22:07
【问题描述】:
我有一个数据库。如果之前没有构建,我已经创建了一个仅包含 DB 中一行的表。
为什么它只有 1 行是我只是用它来保存一些信息。
有一个TYPE NVARCHAR(100) 字段,我想用它来存储会话ID,
这让我很头疼:
似乎我什至无法正确地插入(我使用phpmyadmin 进行检查,它是空白的)和更新(语法错误...)它使用从session_id() 获得的会话 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检查INSERT或UPDATE之后的sid field时,它是空白的;
但如果我这样做:
$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 中列出此类问题的一些真实参考?
非常感谢!!
【问题讨论】:
标签: php sql database types field