我应该将PDO PARAM_LOB
或PARAM_STR
用于MySQL TEXT
类型吗?我希望我的数据是5000多个字符。
$stmt->bindParam(':notes', $notes, PDO::PARAM_STR);
OR
$stmt->bindParam(':notes', $notes, PDO::PARAM_LOB);
答案 0 :(得分:2)
如果您正在使用大块数据,正如您在用例中提到的那样,那么是 - 我会使用PDO::PARAM_LOB
来使用数据流来处理您的数据。
在您的应用程序的某个时刻,您可能会发现需要 商店"大"数据库中的数据。大型通常意味着大约4kb 或更多",尽管一些数据库之前可以愉快地处理高达32kb 数据变得很大"。大对象可以是文本的,也可以是二进制的 性质。 PDO允许您使用。使用此大型数据类型 您的PDOStatement :: bindParam()或中的PDO :: PARAM_LOB类型代码 PDOStatement :: bindColumn()调用。 PDO :: PARAM_LOB告诉PDO映射 数据作为流,以便您可以使用PHP Streams对其进行操作 API。
并像这样使用它:
<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
header("Content-Type: $type");
fpassthru($lob);
答案 1 :(得分:1)
对于只有5千字节的少量文本,它没有任何区别。
当您的文本接近1000000个字符时,您可能会开始担心。只要您不必处理这笔金额,就不要担心这些事情