我尝试将我的代码从MYSQL更改为SQL,并且出现错误(SQL语法'限制').
所以我试图改变我的查询并用"TOP"更新,但似乎只适用于SELECT.
那么,我该如何更改这个MYSQL查询:
$fct="UPDATE `users` SET `STREAM_TITRE` = '$STREAM_TITRE',`STREAM_URL` = '$STREAM_URL',`STREAM_DESC` = '$STREAM_DESC',`STREAM_GENRE` = '$STREAM_GENRE' WHERE `ID` =$IDSESS LIMIT 1";
Run Code Online (Sandbox Code Playgroud)
这是我的无限制SQL代码:
$fct="UPDATE users SET STREAM_TITRE = '$STREAM_TITRE', STREAM_URL = '$STREAM_URL', STREAM_DESC = '$STREAM_DESC', STREAM_GENRE = '$STREAM_GENRE' WHERE ID = '$IDSESS'";
Run Code Online (Sandbox Code Playgroud)
谢谢
目前还不是很清楚哪个版本的查询正在运行,哪个版本没有 - 以及在哪个DBMS中.
如果ID是char或varchar类型,则缺少LIMIT版本中的一些引号.虽然MySQL不是很挑剔,但你不会有很多问题,有或没有引号:
$fct = "
UPDATE users
SET STREAM_TITRE = '$STREAM_TITRE'
, STREAM_URL = '$STREAM_URL'
, STREAM_DESC = '$STREAM_DESC'
, STREAM_GENRE = '$STREAM_GENRE'
WHERE ID = $IDSESS --<-- this should be '$IDSESS' , right?
----- or $IDSESS , depending on the datatype
LIMIT 1
";
Run Code Online (Sandbox Code Playgroud)
注意:LIMIT nMySQL和PostgreSQL中有效,但在其他DBMS中则无效.另外,我认为你真的不需要它,因为ID它可能是表的主键.
如果您尝试将语句从MySQL转换为SQL-Server,则不应使用反引号并替换LIMIT 1为TOP (1):
$fct = "
UPDATE TOP (1) users
SET STREAM_TITRE = '$STREAM_TITRE'
, STREAM_URL = '$STREAM_URL'
, STREAM_DESC = '$STREAM_DESC'
, STREAM_GENRE = '$STREAM_GENRE'
WHERE ID = $IDSESS
";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11349 次 |
| 最近记录: |