我想在现有的mysql
表中添加一个名为image的新列。
类型为 BLOB ,属性为BINARY且NO NULL
我应该在PhpMyAdmin中使用什么代码?
答案 0 :(得分:1)
在PhpMyAdmin中,您可以使用表编辑器通过单击表的结构来添加新列。
相反,mysql命令是:
ALTER TABLE table_name ADD image MEDIUMBLOB NOT NULL
MEDIUMBLOB的最大大小为16MB,对于任何更大的东西都使用LONGBLOB(最多4GB)
如果您在上传BLOB时遇到问题,请检查max_allowed_packet http://dev.mysql.com/doc/refman/5.5/en/packet-too-large.html的值
答案 1 :(得分: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文档很棒btw。