mysqli_stmt_bind_param变量类型

时间:2013-06-20 03:01:10

标签: php mysqli

我正在从mysql_转换为mysqli_,仍然是mysqli_的新转换。这是我的代码:

$stmt = mysqli_prepare($con, "INSERT INTO test VALUES (?, ?)");
mysqli_stmt_bind_param($stmt, 'ss', $a, $b);

$a=1;
$b=1.5;


mysqli_stmt_execute($stmt);

我的问题是:

$a has Integer value
$b float

mysqli_stmt_bind_param ss (string,string)中的相应变量类型。

结果是数据成功插入到表中,是按预期工作还是我做错了?

3 个答案:

答案 0 :(得分:0)

实际上绑定函数(mysqli_stmt_bind_paramPDOStatement::bindParam)不是验证函数。您将展示如何仅解释您的值以及您希望从结果中获得什么类型的值。

答案是:它按预期工作。

答案 1 :(得分:0)

此语句所针对的表中的字段是否设置为整数/浮点数?或者它们是否在数据库中设置为字符串(有些人出于某种原因这样做)。另外,至于准备好的语句速度较慢,我认为仅在运行一次运行一次唯一查询时才会出现这种情况。如果你在循环中进行多个查询,我相信准备好的语句要快得多(假设语句是在循环之外构造的)。

答案 2 :(得分:0)

源变量可以是任何类型的,但是在准备查询时它会尝试转换为字符串,因为这就是你所说的查询所用的类型。

真正重要的是表格中的字段类型。我不确定PHP如何处理这个问题,但如果查询采用整数(i)并且您尝试将其作为字符串(s)进行准备,则可能会导致错误。在任何情况下,您都应指定正确的类型以避免出现问题。