Php 如果需要ro,请检查PDOSMT->;execute()返回,是否在if语句中再次调用它?
如果我有这样的基本插入查询:Php 如果需要ro,请检查PDOSMT->;execute()返回,是否在if语句中再次调用它?,php,mysql,Php,Mysql,如果我有这样的基本插入查询: $stmt = $db->prepare("INSERT INTO table (row) VALUES (?)"); $stmt->bindParam(1, $value); 我可以在这样的if语句中调用execute来检查插入是否成功吗 $stmt = $db->prepare("INSERT INTO table (row) VALUES (?)"); $stmt->bindParam(1, $value); if ($stmt-&g
$stmt = $db->prepare("INSERT INTO table (row) VALUES (?)");
$stmt->bindParam(1, $value);
我可以在这样的if语句中调用execute来检查插入是否成功吗
$stmt = $db->prepare("INSERT INTO table (row) VALUES (?)");
$stmt->bindParam(1, $value);
if ($stmt->execute()){echo "success"}
或者我必须先调用它,然后在if语句中再次调用它吗
$stmt = $db->prepare("INSERT INTO table (row) VALUES (?)");
$stmt->bindParam(1, $value);
$stmt->execute()
if ($stmt->execute()){echo "success"}
调用$stmt->execute()两次将执行两次
最好使用try-and-catch,因为prepare()和bindParam()也可能失败:
try {
$stmt = $db->prepare("INSERT INTO table (row) VALUES (?)");
$stmt->bindParam(1, $value);
$stmt->execute();
echo 'Success';
} catch (PDOException $e) {
echo 'Error: '.$e->getMessage();
}
您可以使用第二个代码段执行两次。你的第一个是正确的。为什么不试试看会发生什么?但是Qirel是对的,第二个将使查询运行两次……您只需测试第二次尝试的成功。第一个例子是如何做。请记住,prepare()和bindParam()方法也可能失败。