Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PDO和INSERT(PHP)_Php_Mysql_Sql_Pdo - Fatal编程技术网

使用PDO和INSERT(PHP)

使用PDO和INSERT(PHP),php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我有 $sql = $db->prepare("INSERT INTO `aliases` (`alias`, `domain`, `added`, `enabled`) VALUES (:alias, :domain, :added, :enabled)"); $sql->bindValue(':alias', $alias); $sql->bindValue(':domain', $domain); $sql->bindValue(':added', time());

我有

$sql = $db->prepare("INSERT INTO `aliases` (`alias`, `domain`, `added`, `enabled`) VALUES (:alias, :domain, :added, :enabled)");
$sql->bindValue(':alias', $alias);
$sql->bindValue(':domain', $domain);
$sql->bindValue(':added', time());
$sql->bindValue(':enabled', 1);
$sql->execute();
//how do I test if it was added or #1062 - Duplicate entry '...' for key 'alias'
我想那是对的

我的问题是:
如何测试它是否已成功添加?

您可以检查
$sql->execute()
的返回值,如下所示:

if ($sql->execute()) {
    // Query succeeded.
} else {
    // Query failed.
    $errorcode = $sql->errorCode();
}

有关更多信息,请参阅(已准备语句的类)。

您可以检查
$sql->execute()
的返回值,如下所示:

if ($sql->execute()) {
    // Query succeeded.
} else {
    // Query failed.
    $errorcode = $sql->errorCode();
}
有关更多信息,请参阅(已准备语句的类别)。

请参阅关于和此的文档

默认情况下,您必须检查execute的返回。详细信息可在和中找到

但我建议使用PDO::ERRMODE_异常,以便在出现错误时抛出。这使您的代码更加整洁。基本信息由异常提供,但可以找到更多信息(使用异常的正常方法,请参阅上面的文档链接)

请参阅关于和此的文档

默认情况下,您必须检查execute的返回。详细信息可在和中找到

但我建议使用PDO::ERRMODE_异常,以便在出现错误时抛出。这使您的代码更加整洁。基本信息由异常提供,但可以找到更多信息(使用异常的正常方法,请参阅上面的文档链接)


您缺少要为其分配值的行:alias、:domain、:added和:enabledOh我忘了复制它们。我现在添加它们检查$sql->errorCode()是否有效?您缺少要为其赋值的行:alias、:domain、:added和:enabledOh我忘记复制它们了。我现在添加它们检查$sql->errorCode()是否有效?
$db = new PDO( /* your connection string */ );
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
try {
    $sql = $db->prepare("INSERT INTO `aliases` (`alias`, `domain`, `added`, `enabled`) VALUES (:alias, :domain, :added, :enabled)");
    $sql->execute();
}

catch(PDOException $e) {
    echo $e;             //basic information is provided due to Exception::__toString()
    die();
}
if ($stmt->errorCode() == "00000")  {
  // Query succeeded.   
} else {
  // Query failed.
  echo "Error: " . $stmt->errorCode();
}