草庐IT

comment_id

全部标签

PHP: Mysql ("SELECT WHERE ID NOT ")

我试图从Mysql_query中排除一个“ID”,但它仍然返回提到的ID。此ID为“21”,但查询返回“21”,这不是我想要的。我是不是在Mysql中拼错了什么?("SELECT*FROM`gallery`WHERE`gallery_id`NOTIN('$notgallery')")ordie(mysql_error());functionnot_gallery($pic){$pic=$_GET['id'];$id=explode(".",$pic);$notgallery=$id;$notg=mysql_query("SELECT*FROM`gallery`WHERE`gallery

php - 使用 fat-free-framework 获取最新插入的自动递增记录 ID

我需要获取表中最新插入记录的id(AUTO-INCREMENTED)。我正在使用无脂框架。我试图通过使用获取最新的id$id=mysql_insert_id();但它给了我这个错误Accessdeniedforuser'root'@'localhost'(usingpassword:NO)我正在使用fat-free-framework访问数据库,而不是使用传统的php函数。谁能指导我如何实现这一目标? 最佳答案 插入记录后尝试此代码$id=$db->lastInsertId(); 关于p

mysql - 使用 ID 列表更新多行

我需要根据ID更新表中的多行。在存储过程中,我正在创建一个保存ID列表的varchar变量。现在,在表中我有ID为1、2的条目。varchar变量的值为1,2;所以我预计不会使用以下查询更新任何行。UPDATEmytblSETflag=1WHEREIdIN(IdList);--HereIdListhasvalue'1,2'但此处ID为2的行正在更新。Select查询也返回同一行。我尝试将IdList连接为"'1','2'",然后它返回两行(带有ID1和2)。Id的数据类型是int。有没有正确的方法来维护整数列表? 最佳答案 只需像这

php - 如果 id 相同,Laravel 验证唯一性

我有一个表/模型,每个用户包含多个相册。有没有办法说title列应该是唯一的,但仅适用于具有相同user_id的行?示例:http://pastebin.com/8dvM4a1T在示例中可以看到,id为2的用户创建了2个相册,标题相同。我不希望它被允许,这就是为什么我想知道是否有办法用Laravel的验证器来拒绝它?我试过了,但是没用。//Validator$validator=Validator::make($input,['title'=>'required|min:1|max:255|unique:galleries,title,'.Auth::user()->id.',user

mysql - 我应该索引什么?用户名还是用户 ID?

我有一个相当简单的表(原谅错误/愚蠢,我还在学习。为MySQL编写):CREATETABLEIFNOTEXISTS`userdata`(`userid`UNSIGNEDint(18446744073709551615)AUTO_INCREMENT,`username`char(255)NOTNULL,`password`char(255)NOTNULL,`salt`char(255)NOTNULL,`email`char(255)NOTNULL,PRIMARYKEY(`userid`));我读到过添加索引可以提高查询的性能,因为它不需要查看整个数据库。相反,它将查看索引并匹配数据(如果

php - 使用 php 在 mysql 中查找最后插入的 ID 的最佳方法

我想知道在mysql查询后获取最后插入的ID的最佳解决方案是什么?我找到了以下解决方案:甚至使用mysql_insert_idphp函数,但显然这个函数不能很好地与bigint一起使用(这就是我在ID字段中使用的),如果有很多连续的sql查询,它可能不可靠.有人可以提供可靠且快速的解决方案来完成这项任务吗? 最佳答案 SELECTLAST_INSERT_ID()不够可靠和安全吗?来自MySQL文档:TheIDthatwasgeneratedismaintainedintheserveronaper-connectionbasis.T

php - 从 PHP 调用的 MySQL MAX(id) 产生奇怪的值

我只是想获取当前最高的表的自动增量值。我不需要知道下一个自动增量是什么,只需要知道表中现在的最高值。我正在使用下面的代码,但无论实际的自动增量是什么,我最后插入到哪个表,最后更新/修改哪个表,或者我能看到的任何其他因素,该值总是返回Resourceid#4.这让我感到困惑,原因有二。首先我不明白为什么数字总是4,其次我不明白为什么我要返回一个字符串值(带有字母和符号)而不是一个整数。这是怎么回事? 最佳答案 mysql_query不返回查询的值,它返回一个结果资源。要获得实际值,您需要使用mysql_fetch_*函数之一,将您从m

mysql - 删除 ID 最低的记录

当我在MySQL中键入此查询时:DELETEFROMmyTableWHEREID=(SELECTMin(ID)FROMmyTable)我收到以下错误消息:#1093-Youcan'tspecifytargettable'myTable'forupdateinFROMclause问题是什么?什么是正确的等价物? 最佳答案 基本上在MySQL中,您不能对在SELECT部分中使用的表进行更新。有关详细信息,您可以查看记录在以下位置的此行为:http://dev.mysql.com/doc/refman/5.6/en/update.html

mysql - 如何找到 MySQL 记录集中的 ID 间隙?

这里的问题与我的另一个问题有关...我有数百万条记录,每条记录的ID都是自动递增的,不幸的是,有时生成的ID有时会被丢弃,因此ID之间存在许多差距。我想找到差距,并重新使用被遗弃的ID。在MySQL中执行此操作的有效方法是什么? 最佳答案 首先,您想要通过重用跳过的值获得什么优势?一个普通的INTUNSIGNED可以让你数到4,294,967,295。对于“数百万条记录”,您的数据库在用完有效ID之前必须增长一千倍以上。(然后使用BIGINTUNSIGNED将使您达到18,446,744,073,709,551,615个值。)尝试回

mysql - 删除其中一些后修复 mysql 表行 id 中的空白

这个问题在这里已经有了答案:Howtohandlefragmentationofauto_incrementIDcolumninMySQL(5个答案)关闭2年前。我有一个mysql表,其中有超过17000行。我从它的中间部分删除了大约530行。现在每一行都有一个连续的AUTO-INCREAMENTED数字主键。正如您现在所理解的那样,行的几个数字已被删除。所以我只是想问一下,有没有办法以某种完美的顺序再次修复所有行?