草庐IT

int_void

全部标签

php - 模型上的 find() 在一个环境中将 id 给出为字符串,在其他环境中给出 int

我正在使用Laravel5并且有一个模型Book。我有两个环境-dev和production在开发上:在tinker中,当我这样做时Book::first()它给了我App\Book{id:1,name:...关于生产:同样的事情给了我App\Book{id:"1",name:...注意id在dev中是int但在production中是string/p>因此,像这样的条件if($id===$book->id)在dev上正常工作,在production上不工作。知道为什么会这样吗?有没有办法让生产环境给我int而不是string?附言:我在dev上安装了Laravel,然后通过git在p

php - PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

PDOMSSQLServer和PDOMySQL都在您获取时返回一个字符串数组,即使列的SQL类型本来是数字类型,例如int或float。我设法解决了这个问题,但我想了解为什么一开始就以这种方式设计它们。是不是PDO本身不支持(或者之前不支持)? 最佳答案 使用PDOMySQLtheunderlyingCAPI返回astructureofstrings当调用mysql_fetch_row()时。由于PHP是一种松散类型的语言,会根据需要自动转换为整数,我怀疑PDO开发人员选择按原样返回它们。这比查找每个列类型并动态转换为整数/floa

mysql - 在表中存储状态标志值的最佳方式(char 或 int)

我需要在表中有一个名为status的列。此状态列可以包含->activated、expired、deactivated。所以我想知道为什么我不能创建一个名为status的整数类型列并将它们存储为0、1、2(过期、激活、停用)。但是我们被要求使用做这些事情。CHAR而不是Int。所以它将是statusChar(2)并存储为0、1、2。我的问题是为什么我应该使用Char而不是Integer作为列类型? 最佳答案 对于flag字段,我通常会使用CHAR(1),这样我就有了一些有意义但内部的值,例如'A','E','D'-我不在这种情况下使

php - PDO::PARAM_INT 是多余的吗?

当与$db->quote()函数一起使用时,PDO::PARAM_INT是否执行任何功能?例如$db->quote($user['id'],PDO::PARAM_INT)?似乎是这样,因为即使是字符串输入也会通过。更不用说它保留整数周围的引号。我为什么要使用它? 最佳答案 它没有任何效果,因为毕竟您正在运行quote函数。它被引号括起来是很自然的。PDO::PARAM_INT在其他上下文中可能更重要,例如准备好的语句,在这些上下文中它的实际处理方式与字符串不同。quote可能更关心不应引用或应以不同方式引用的其他数据类型,例如PDO

c# - 如何使用 Fluent-NHibernate 和 MySQL 指定自动递增 (int) 标识列

标题基本上说明了一切...我正在尝试使用Fluent-NHibernate和MySQL指定一个自动递增(int)标识列。我尝试了以下变体...Id(x=>x.ID).GeneratedBy.Native();Id(x=>x.ID).GeneratedBy.Identity();Id(x=>x.ID).GeneratedBy.Increment();...并尝试为每个设置默认值。注意:我使用的是int数据类型并且收到了诸如...的错误"Inputstringwasnotinacorrectformat."或者……"Field'ID'doesnothaveadefaultvalue'

php - 尽管使用 PDO::PARAM_INT 参数,MySQL/PDO::quote() 还是在整数周围加上引号

无论我将什么值/数据类型对传递给$pdo->quote($value,$type);,它总是将其作为字符串引用:echo$pdo->quote('foo',PDO::PARAM_STR);/*'foo',asexpected*/echo$pdo->quote(42,PDO::PARAM_INT);/*'42',expected42unquoted*/我只是想知道这是否是预期的功能。我使用准备好的语句来执行实际的查询,但我正在尝试fetch创建最终的查询字符串(用于调试/缓存),并手动构建它们。正如标题所暗示的,这是使用MySQL驱动程序创建$pdo时。由于不可用,我没有尝试过其他的。

php - 在 CakePHP 中,int 列作为字符串从 DB 中提取

我是CakePHP的新手,但到目前为止我发现它非常容易使用。今天我遇到了从数据库导出数据的问题。我正在将我的1个模型导出为JSON。一切都很顺利,除了我注意到CakePHP将id列导出为字符串。该模型在mysql中被定义为int。我已经检查了JSON输出和模型,方法是-var_dump($this->Post->findById($id));exit;在模型中,id也被定义为字符串。这会扰乱依赖该JSON输出的其他系统,这些系统用于获取整数作为ID。我尝试在模型中设置$_schema属性,但这并没有改变任何东西。非常感谢您的帮助。谢谢,丹 最佳答案

php - 使用 Int 转换的 PDO 准备语句

我正在使用PDO准备语句将数据从外部xml源插入数据库,因为我不100%信任源我对所有变量(包括字符串和整数)使用了bindValue,例如:SQL:INSERTINTOtable(id,int1,int2,string1,string2)VALUES(:id,:int1,:int2,:string1,:string2)在我的PDO函数中:$sth->bindValue(":id",$id,PDO::PARAM_INT);$sth->bindValue(":int1",$int1,PDO::PARAM_INT);$sth->bindValue(":int2",$int2,PDO::PA

php - SQL 参数数据类型 int 对于 charindex 函数的参数 1 无效

我正在尝试将MySQL查询转换为MsSql查询,但遇到了问题。这是我的查询:MySQLSELECT*,(SELECTcount(books.id)FROMbooksWHEREbooks.status=1ANDFIND_IN_SET(categories.id,books.multiple_category_id))ASbook_countFROMcategories,booksWHEREcategories.parent_id=0ANDcategories.status=1;我试过的SQLSELECT*,(SELECTcount(books.id)FROMbooksWHEREbooks

sql - MySQL 数据类型 : int versus enum

我有许多列只需要存储几个值(例如0、1、2、3)。对于这种情况我应该选择什么数据类型?我觉得我应该选择像ENUM('0','1','2')这样的东西。int会更好吗(尽管限制较少)?我是否应该考虑其他东西(比如tinyint)?编辑:实际上,在决定数据类型时我应该考虑哪些一般建议? 最佳答案 如果你想将它限制为这3个值,那么ENUM确实可能是最好的。但是,如果将来可能需要更多值,那么TINYINTUNSIGNED可能是更好的解决方案。 关于sql-MySQL数据类型:intversuse