0

我想在现有mysql表中添加一个名为 image 的新列。

类型是BLOB,属性是 BINARY 和 NO NULL

我应该在 PhpMyAdmin 中使用什么代码?

4

2 回答 2

2

在 PhpMyAdmin 中,您可以使用表格编辑器通过单击表格结构来添加新列。

相反,mysql 命令将是:

ALTER TABLE table_name ADD image MEDIUMBLOB NOT NULL

MEDIUMBLOB 的最大大小为 16MB,更大的使用 LONGBLOB(最大 4GB)

如果您在上传 BLOB 时遇到问题,请检查 max_allowed_pa​​cket http://dev.mysql.com/doc/refman/5.5/en/packet-too-large.html的值

于 2013-06-09T13:19:19.583 回答
0

不建议使用 BLOB 来保存图像。

将文件保存在您的网络服务器上的某个位置,例如 .../htdocs/images/picture.jpg(假设您使用 xampp)。然后在您的数据库中为图像名称的字符串创建一个简单的列。向您展示我为什么要使用 PHP。在你的 .../htdocs/index.php

然后,您可以执行以下操作:

<?php
//enter you PhpMyAdmin details here.
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
    echo "Unable to connect to DB: " . mysql_error();
    exit;
}

if (!mysql_select_db("mydbname")) {
    echo "Unable to select mydbname: " . mysql_error();
    exit;
}

$sql = "SELECT imageName
        FROM   MyTable
        ;

$result = mysql_query($sql);

if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
}

// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
//       then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
    ?>
    <img src="images/<?=$row["userid"]?> <!-- this will get repeted for all the rows in you database -->
    <?php
}

mysql_free_result($result);

?>

这是我从中获得示例代码的地方: PHP Doc 我只是对其进行了一些修改.. 但是 php 文档非常棒。

于 2014-12-18T16:56:56.613 回答