Php 为什么sql查询无法运行?

Php 为什么sql查询无法运行?,php,mysql,pdo,Php,Mysql,Pdo,我使用pdo插入数据,实际上,sql可以在phpmyadmin中运行,它不会抛出错误,它只是不插入(不插入任何内容),数据是正确的,为什么会发生这种情况?多谢各位 try { $query='INSERT INTO user_smtp (SmtpID,UserID,LoginID,Pwd) VALUES (?,?,?,?)'; $stmt = $conn->prepare($query); //$stmt->execute(array($_SESSION['s

我使用pdo插入数据,实际上,sql可以在phpmyadmin中运行,它不会抛出错误,它只是不插入(不插入任何内容),数据是正确的,为什么会发生这种情况?多谢各位

try {
    $query='INSERT INTO user_smtp (SmtpID,UserID,LoginID,Pwd) VALUES (?,?,?,?)';
    $stmt = $conn->prepare($query);
    //$stmt->execute(array($_SESSION['smtpEdit'],$_SESSION['username'],$login,$pwd));
    $stmt->execute(array('22','id','as','asdasd'));
    }

catch(PDOException $e)
    {
    die ("<div class='alert alert-error'>".$e->getMessage()."<a href='setting.php'> Back</a>"); 
    }  
试试看{
$query='INSERT INTO user_smtp(SmtpID、UserID、LoginID、Pwd)值(?,,,?)';
$stmt=$conn->prepare($query);
//$stmt->execute(数组($_会话['smtpEdit'],$_会话['username'],$login,$pwd));
$stmt->execute(数组('22','id','as','asdasd');
}
捕获(PDO$e)
{
死亡(“$e->getMessage()”);
}  

您确定捕获了所有内容吗?
$stmt
是否返回true?如果使用此
$stmt->execute(数组(22,'id','as','asdasd'),是否有效?换句话说:您是在为基于字符的数据字段传递字符串,还是为基于数字的数据字段传递数字?@horatio,不,我试过了,谢谢。@Neal,两个$stmt都返回了true@LeoChan您是否确保它不是数据类型不匹配?数组中的第一项是
'22',…
而不是
22,…
如果SmtpID是整数数据类型,则可能会在那里出错。