Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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 在文章表中上载图像后存储图像\u id_Php_Mysql_Image_Upload - Fatal编程技术网

Php 在文章表中上载图像后存储图像\u id

Php 在文章表中上载图像后存储图像\u id,php,mysql,image,upload,Php,Mysql,Image,Upload,根据这一点,我成功地创建了上传图像,但现在我需要将image\u id存储到另一个名为articles的表中。我不知道这是否正确,但我尝试像这样从表image中选择image_id $select_image=mysql_query("select image_id from image where image_name = $fileName") or die(mysql_error()); 并将结果获取到我的文章insert查询,如下所示 $fetch=mysql_fetch_array(

根据这一点,我成功地创建了上传图像,但现在我需要将
image\u id
存储到另一个名为
articles
的表中。我不知道这是否正确,但我尝试像这样从表image中选择image_id

$select_image=mysql_query("select image_id from image where image_name = $fileName") or die(mysql_error());
并将结果获取到我的文章insert查询,如下所示

$fetch=mysql_fetch_array($select_image);

$query=mysql_query("insert into articles (article_name,article_category,article_subcategory,article_body,article_summary,article_tags,article_photo,article_timedate) values ('$article_title','$CategoryID','$ProductID','$article_body','$article_summary','$fetch[image_id]','$time')") or die ('Error, Query Faild'.mysql_error());
这是正确的吗?mysql\u错误一直在说

“where子句”中的未知列“Penguins.jpg”


您需要在第一次查询中将
$fileName
放在引号中,即
'$fileName'

您需要在第一次查询中将
$fileName
放在引号中,即
'$fileName'
这是mysql语法相关的问题。 所有直接进入查询的数据必须使用两条规则进行准备:
1.必须使用mysql\u real\u escape\u string()函数对数据进行转义
2.用引号括起来

所以,代码必须是

$fileName=mysql_real_escape_string($fileName);
$select_image=mysql_query("select image_id from image where image_name = '$fileName'") or die(mysql_error()); 

另外,如果您在该查询之前插入了图像,则无需选择其id。您可以使用
mysql\u insert\u id()
函数这是与mysql语法相关的问题。 所有直接进入查询的数据必须使用两条规则进行准备:
1.必须使用mysql\u real\u escape\u string()函数对数据进行转义
2.用引号括起来

所以,代码必须是

$fileName=mysql_real_escape_string($fileName);
$select_image=mysql_query("select image_id from image where image_name = '$fileName'") or die(mysql_error()); 

此外,如果您在此查询之前插入了图像,则无需选择其id。您可以使用
mysql\u insert\u id()
函数问题是您的文件名没有被引用,因此您的mysql服务器正在尝试处理查询:

select image_id from image where image_name = Penguins.jpg
更糟糕的是,有人上传了一个名为

一,;邪恶的MYSQL查询在这里

他们将能够在您的服务器上执行任意MySQL。这称为SQL注入攻击


请查看包含此内容的。问题是您的文件名没有被引用,因此您的MySQL服务器正在尝试处理查询:

select image_id from image where image_name = Penguins.jpg
更糟糕的是,有人上传了一个名为

一,;邪恶的MYSQL查询在这里

他们将能够在您的服务器上执行任意MySQL。这称为SQL注入攻击


查看包含此内容的。

您可以通过调用

SELECT LAST_INSERT_ID()
而不是

select image_id from image where image_name = $fileName

您可以通过调用

SELECT LAST_INSERT_ID()
而不是

select image_id from image where image_name = $fileName

我会说这不是吓人的注入问题,只是语法错误:)我会说这不是吓人的注入问题,只是语法错误:)我应该如何在另一个select查询中获取此问题?只需替换select image\u id。。。使用SELECT LAST_INSERT_ID(),不需要仅为获取主键(ID)而选择实际行。我假设您确实为ID字段使用自动增量:),只有这样做才会work@Bader您不需要任何查询,因为PHP已经为您提供了一个函数。阅读PHP手册总比不那么聪明好,所以answershow我应该在另一个select查询中获取这个吗?只需替换select image\u id。。。使用SELECT LAST_INSERT_ID(),不需要仅为获取主键(ID)而选择实际行。我假设您确实为ID字段使用自动增量:),只有这样做才会work@Bader您不需要任何查询,因为PHP已经为您提供了一个函数。阅读PHP手册总比不那么聪明的回答要好