Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php在mysql表中插入数据_Php_Mysql_Joomla3.0 - Fatal编程技术网

php在mysql表中插入数据

php在mysql表中插入数据,php,mysql,joomla3.0,Php,Mysql,Joomla3.0,我已经创建了一个php函数,它可以创建缩略图,并且可以像suposed一样工作,但是现在我想在mymysqli数据baze中插入这个缩略图和一些数据。我试着这么做,但没用。我对mysql不好,需要帮助。 require 'config.php'; if(preg_match('/[.](jpg)$/', $filename)) { $im = imagecreatefromjpeg($path_to_image_directory . $filename); } else if (pr

我已经创建了一个php函数,它可以创建缩略图,并且可以像suposed一样工作,但是现在我想在mymysqli数据baze中插入这个缩略图和一些数据。我试着这么做,但没用。我对mysql不好,需要帮助。
require 'config.php';

if(preg_match('/[.](jpg)$/', $filename)) {
    $im = imagecreatefromjpeg($path_to_image_directory . $filename);
} else if (preg_match('/[.](gif)$/', $filename)) {
    $im = imagecreatefromgif($path_to_image_directory . $filename);
} else if (preg_match('/[.](png)$/', $filename)) {
    $im = imagecreatefrompng($path_to_image_directory . $filename);
}

$ox = imagesx($im);
$oy = imagesy($im);

$nx = $final_width_of_image;
$ny = floor($oy * ($final_width_of_image / $ox));

$nm = imagecreatetruecolor($nx, $ny);

imagecopyresized($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);

if(!file_exists($path_to_thumbs_directory)) {
  if(!mkdir($path_to_thumbs_directory)) {
       die("There was a problem. Please try again!");
  } 
   }
imagejpeg($nm, $path_to_thumbs_directory . $filename);
$host = 'localhost';
$user = 'timoleon_pandess';
$pass = 'pass';
mysql_connect($host, $user, $pass);
mysql_select_db('timoleon_pandessia');

$insert_path="INSERT INTO `ng17p_jshopping_products`(`product_id`,      `parent_id`, `product_ean`, `product_availability`, `product_template`,  `product_price`, `min_price`, `different_prices`, `product_weight`, `image`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10])";

$var=mysql_query($inser_path);
?>

放入图像的DB路径,例如:'\img\image2.png'

将存储映像的表更改为类型“longbo”(这将触发LONGBLOB)。 读这个

为什么要在DB中插入图像? 你喜欢这样吗

   Insert into table (`path`) Values ('image.png');
\image.png
-服务器上图像的路径。从DB读取时,您可以添加完整路径
\img\avatar\image.png

我不明白,你使用的插入查询就像是用php写的?值需要封装在“”中,例如:不是
,[value-4]
,而是
,“[value-4]”
。我认为,value将是一个变量
$value4

  INSERT INTO `ng17p_jshopping_products` (`product_id`,    `parent_id`, `product_ean`, `product_availability`, `product_template`,  `product_price`, `min_price`, `different_prices`, `product_weight`, `image`) VALUES ('[value-1]','[value-2]','[value-3]','[value-4]','[value-5]','[value-6]','[value-7]','[value-8]','[value-9]','[value-10]')

您需要添加包含图像文件名的变量

$filename=$path_to_thumbs_directory.$filename;
插入时

$query="INSERT INTO `ng17p_jshopping_products` (`product_id`,`parent_id`,`product_ean`, `product_availability`,`product_template`, `product_price`, `min_price`, `different_prices`, `product_weight`, `image`) VALUES ('[value-1]','[value-2]','[value-3]','[value-4]','[value-5]','[value-6]','[value-7]','[value-8]','[value-9]','$filename')";
$res=mysql_query($query);
if($res==1) { $id=mysql_insert_id;
$query="Select image from ng17p_jshopping_products where id='$id'";
$res=mysql_query($query);
$row=mysql_fetch_array($res);
echo 'It is OK <img src="'.$row['image'].'">'; 
} else echo 'Error';
$query=“插入到`ng17p\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
$res=mysql\u query($query);
如果($res==1){$id=mysql\u insert\u id;
$query=“从ng17p_jshopping_产品中选择图像,其中id=”$id';
$res=mysql\u query($query);
$row=mysql\u fetch\u数组($res);
回音‘没问题’;
}否则回显“错误”;
如果您完成了所有操作,并且在尝试将代码更改为使用mysqli时,它将起作用,请阅读此处
http://php.net/manual/ru/book.mysqli.php

您必须使用ob_start();把衣服洗干净;获取图像内容并将其放入数据库

首先在数据库中创建一个字段以存储图像内容:

ALTER TABLE `ng17p_jshopping_products` ADD `image_content` LONGBLOB NOT NULL ;
并使用如下代码:

<?php
require 'config.php';

if(preg_match('/[.](jpg)$/', $filename)) {
    $im = imagecreatefromjpeg($path_to_image_directory . $filename);
} else if (preg_match('/[.](gif)$/', $filename)) {
    $im = imagecreatefromgif($path_to_image_directory . $filename);
} else if (preg_match('/[.](png)$/', $filename)) {
    $im = imagecreatefrompng($path_to_image_directory . $filename);
}

$ox = imagesx($im);
$oy = imagesy($im);

$nx = $final_width_of_image;
$ny = floor($oy * ($final_width_of_image / $ox));

$nm = imagecreatetruecolor($nx, $ny);

imagecopyresized($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);

if(!file_exists($path_to_thumbs_directory)) {
  if(!mkdir($path_to_thumbs_directory)) {
       die("There was a problem. Please try again!");
  } 
}

$host = 'localhost';
$user = 'timoleon_pandess';
$pass = 'pass';
mysql_connect($host, $user, $pass);
mysql_select_db('timoleon_pandessia');

ob_start();
imagejpeg($nm);
$image_content = mysql_real_escape_string(base64_encode(ob_get_clean()));
imagedestroy($nm);

$insert_path="INSERT INTO `ng17p_jshopping_products`(`product_id`, `parent_id`, `product_ean`, `product_availability`, `product_template`,  `product_price`, `min_price`, `different_prices`, `product_weight`, `image`,`image_content`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10],'".$image_content."')";

$var=mysql_query($inser_path);
mysql_close();
?>

这足以在项目与其图像之间建立连接。在另一种情况下(将文件存储在DB中,而不是硬盘上),设置为存储到varchar(255)的图像路径的单元格


如果您的脚本没有生成图像或将其保存到需要的位置,这是另一个问题

标记为mysqli,但您正在使用mysql?我的答案是将图像内容存储到数据库中,而不是磁盘上。如果要存储图像的文件路径,必须将文件名“$path\u to\u thumbs\u directory.$filename”存储到mysql字段中…我做了更改,但它不起作用。。。知道问题出在哪里吗?$host='localhost';$user='timoleon_pandess';$pass='pass';mysql\u connect($host、$user、$pass);mysql_select_db('timoleon_pandessia');$im=imagecreatefromgif($path\u to\u image\u directory.$filename);$insert_path=“insert INTO
ng17p_jshopping_产品_图像
image\u id
product\u id
image\u name
image
)值(“[999]”,“[998]”,“$filename',“$im”);$var=mysql\u查询($inser\u路径);
<?php
function show_image($id) {
    $host = 'localhost';
    $user = 'timoleon_pandess';
    $pass = 'pass';
    mysql_connect($host, $user, $pass);
    mysql_select_db('timoleon_pandessia');

    // code to retrieve the image from database with $id id to $image_to_show variable
    // ....

    header('Content-Type: image/jpeg');
    echo stripslashes(base64_decode($image_to_show["image_content"]));
}
?>
$bd_host="localhost"; 
$bd_user="timoleon_pandess";
$bd_password="pass";
$bd_base="_base";

$con=mysql_connect($bd_host, $bd_user, $bd_password); 

if(!con) {
echo 'Ошибка, невозможно подключиться к серверу базы данных.'; 
exit; 
}

mysql_select_db($bd_base, $con); 
mysql_query('SET NAMES utf8');

$filename='/img/img.png'; // you need to catch it when you make and save thumbnail

$query="insert into ng17p_jshopping_products (`image`) Values ('$filename')";
mysql_query($query);