【发布时间】:2017-07-05 16:32:24
【问题描述】:
我完全不知道为什么这个准备好的语句不起作用返回 false 但没有给我任何错误。我在 StackOverflow 上阅读过类似的问题,但我没有找到任何提示来解决这个未知问题。
错误被激活
public function PDOconn() {
try {
return new PDO($this->getDsn(), $this->username, $this->password, [PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION]);
} catch (PDOException $e) {
echo "Errore di connessione al database";
throw $e->getCode();
}
}
这是处理 AJAX 请求的 PHP 文件。我将查询插入到try {} ... catch(),但实际上并没有帮助,因为它没有报告任何错误。 execute() 只返回false
/* ***** CLASSES AUTOLOAD fn ***** */
spl_autoload_register(function ($class_name) {
require_once '../classes/' . $class_name . '.php';
});
$db = new database();
$conn = $db->PDOconn();
$name = postGet::post('name');
$email = postGet::post('email');
$commercial = postGet::post('commercial');
try {
$stmt = $conn->prepare('INSERT INTO newsletter_subscription(name, email, commercial) VALUES(:name, :email, :commercial)');
$stmt->execute(array(':name' => $name, ':email' => $email, ':commercial' => $commercial));
} catch (PDOException $e) {
$return = $e->getCode();
}
header('Content-Type: application/json; charset=utf-8');
echo json_encode($return);
变量string $name、string $email和int $commercial正确传递,我将它们打印到php文件中。
这是 subscriptorID 是 PRIMARY AI 并且 email 是 UNIQUE 的表结构
[解决方案] 对我和我短暂的记忆感到羞耻,但也许它可以帮助其他人:我有那个 DB 用户没有 INSERT 权限的闪存,这就是为什么查询只返回false 没有任何错误。
【问题讨论】:
-
您是否收到任何错误消息?
标签: php mysql pdo sql-insert