【问题标题】:PHP Sqlite and PDO InsertPHP Sqlite 和 PDO 插入
【发布时间】:2012-08-30 14:59:42
【问题描述】:

我正在使用 SQLite 和 PHP 在我的 Mac 上开发一个简单的资金跟踪网络应用程序。我在使用带有 insert 语句的参数将数据插入到 sqlite db 时遇到问题。这不是权限问题,因为我已经能够编写静态插入语句并且它可以正常执行。这是我的代码:

try
{
$databaseins = new PDO("sqlite:/datastores/trackmoney.db")  or die("Could not open database"); 
$databaseins->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO Transactions 
    (TransactionID, TransactionName, Expense, Description, TransactionDate, DateEntered, RecordedBy) 
VALUES (:TransactionID,:TransactionName,:Expense,:Description,:TransactionDate,:DateEntered,:RecordedBy);";
// below is a static insert that works
//$sql = "INSERT INTO Transactions (TransactionID, TransactionName, Expense, Description, TransactionDate, DateEntered, RecordedBy) VALUES ('$guidTransactionID','Test',12.12,'test','3/2/2012','12/12/2012',1);";
$q = $databaseins->prepare($sql);
$q->bindParam(':TransactionID', $guidTransactionID, SQLITE3_TEXT);
$q->bindParam(':TransactionName', $strTransName, SQLITE3_TEXT);
$q->bindParam(':Expense', $fltTransAmount, SQLITE3_FLOAT);
$q->bindParam(':Description', $strTransDescrip, SQLITE3_BLOB);
$q->bindParam(':TransactionDate', $strDateOfTrans, SQLITE3_TEXT);
$q->bindParam(':DateEntered', "1/1/2013", SQLITE3_TEXT);
$q->bindParam(':RecordedBy', 1, SQLITE3_INTEGER);

$count = $q->execute() or die($databaseins->errorInfo());
print("<b>" + $count + "</b>");
$databaseins = null;
}
catch(PDOException $e)
{
echo $e->getMessage();//this getMessage throws an exception if any 
}

我没有收到任何错误消息。请注意,所有变量的值都已设置并具有值。

感谢您的帮助。

【问题讨论】:

  • 您可能需要使用bindValue,而不是bindParam
  • 如果将 SQLITE3_BLOB 更改为 SQLITE3_TEXT 会怎样?
  • 你说的都是对的。我更改为 bindValue 并将 SQLITE3_BLOB 更改为 SQLITE3_TEXT,现在一切正常!谢谢!

标签: php sql sqlite insert pdo


【解决方案1】:

感谢 andrewsi 和 JvdBerg 的帮助。我的问题的解决方法是使用 bindValue 而不是 bindParam 并将 SQLITE3_BLOB 更改为 SQLITE3_TEXT。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 2014-05-06
    • 2012-02-12
    • 2013-09-03
    • 1970-01-01
    • 2013-05-09
    相关资源
    最近更新 更多