我想知道bindParam()(或bindValue())中的数据类型声明用于...
我的意思是,我认为如果我定义一个整数参数(PDO::PARAM_INT),必须将参数转换为整数,类似于
$delete->bindParam(1, $kill, PDO::PARAM_INT);
// should work like
$delete->bindParam(1, (int)$kill);
Run Code Online (Sandbox Code Playgroud)
或者如果参数不是声明的类型,至少抛出一个错误.但这种情况并非如此.
谷歌搜索,我发现在php.net档案:
大家好,
我目前正在研究PDO.正好在bindParam()函数上.第三个参数data_type似乎在这里强制值的类型?但是当我尝试:
Run Code Online (Sandbox Code Playgroud)$sql = "INSERT INTO produit (idproduit, nom, marque) VALUES (NULL, :nom, :marque)"; $stmt = $dbh->prepare($sql); $nom = 'Testarossa'; $marque = 'Ferrari' ; $stmt->BindValue(':marque',$marque) ; $stmt->BindParam(':nom',$nom,PDO::PARAM_INT) ; $stmt->execute(); $nom = '250 GTO' ; $stmt->execute(); ?>我希望在我的数据库中有PHP错误或整数.但在我的数据库中我有:
22 Testarossa Ferrari 23 250 GTO法拉利
这意味着如果我有第三个参数,它不会改变.或许我想念一些东西.有人能容忍我吗?或者只是有人告诉我在哪里可以找到有关它的信息.
问候,
Cyruss
这正是我的情况.我的想法出了什么问题?
可能重复:
PHP:'或'语句失败:如何抛出新的异常?
在PHP中,在各种MySQL连接教程的新手中特别受欢迎,你总能做到这样的事情......
<?php
foo() or die('foo() failed!');
?>
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试这样的事情就会失败......
<?php
foo() or throw new Exception('AHH!');
?>
Run Code Online (Sandbox Code Playgroud)
像这样......
"解析错误:语法错误,意外'投'(T_THROW)......"
有谁知道怎么做类似的事情?我必须在"或"之后设置一个变量吗?
我正在使用php应用程序,并且有一行移动文件.我将该方法包含在try ... catch块中,因此,如果抛出错误,则可以管理回滚系统.但是异常永远不会被捕获,因此,重命名会抛出任何异常?我需要尝试其他方法吗?
谢谢
上面的代码:
try{
if(rename($archivo_salida, $ruta_archivos)){
//anything;
}
}catch (Exception $e)
//do something
}
Run Code Online (Sandbox Code Playgroud)