Javascript 将图像url保存到Mysql数据库

Javascript 将图像url保存到Mysql数据库,javascript,php,mysql,ajax,database,Javascript,Php,Mysql,Ajax,Database,我有一个名为“mysqlproject”的数据库,其中包含两个表。我感兴趣的一个表是命名标记,并在数据库中声明如下: CREATE TABLE IF NOT EXISTS `markers` ( `id` int(11) NOT NULL, `TitleEvent` varchar(60) NOT NULL, `Description` varchar(80) NOT NULL, `lat` float(10,6) NOT NULL, `lng` float(10,6) NOT NULL, `t

我有一个名为“mysqlproject”的数据库,其中包含两个表。我感兴趣的一个表是命名标记,并在数据库中声明如下:

CREATE TABLE IF NOT EXISTS `markers` (
`id` int(11) NOT NULL,
`TitleEvent` varchar(60) NOT NULL,
`Description` varchar(80) NOT NULL,
`lat` float(10,6) NOT NULL,
`lng` float(10,6) NOT NULL,
`type` varchar(255) NOT NULL,
`status` varchar(30) NOT NULL,
`EventUserName` varchar(60) NOT NULL,
`PhotosEvent` varchar(255) NOT NULL
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=73 ;
其中一列是
PhotosEvent
,我想在其中保存照片的url。因此,我通过一个javascript文件捕获一张照片,并通过ajax将其发送到一个php文件“camera.php”

ajax发送过程是:

$.ajax({
        type: "POST",
        url: "camera.php",
        data: { 
        imgBase64: dataURL
              }
        }).done(function( respond ) {
          // you will get back the temp file name
          // or "Unable to save this image."
          console.log(respond);
        });
因此,我用POST方法将图像发送到文件“camera.php”。在php文件中,我拍摄该图像并将其首先保存在“EventImages”文件夹中的“local server”中。好的,行了。。 但我只想将数据库中图像的url保存在活动id所在的raw中的“PhotosEvent”字段中

连接数据库:

$connection = mysql_connect('localhost', 'root', '');
if (!$connection) //Success $Connection with server returns 1
{
die("Database Connection Failed" . mysql_error());
}
else
{
//Connection with server established
}

// Try Connection with mysql Database
$select_db = mysql_select_db('mysqlproject');
if (!$select_db) //Success $Connection with Database returns 1
{
die("Database Selection Failed" . mysql_error());
}
else
{
//Connection with Database established   
}
将图像另存到文件夹为.png(有效)并尝试将url保存到数据库(无效):


我的问题是将图像url路径保存到数据库。我该怎么做?提前感谢。

如果您想进行插入,那么您的
值就放错了位置

做:

还要确保
session_start()已加载,因为您正在使用会话

在看到问题中的评论后,如果

UPDATE markers SET PhotosEvent = '$dataUrl' WHERE id = $_SESSION['id']

不起作用,那可能就是原因

将错误报告添加到文件顶部,这将在生产测试期间有所帮助

error_reporting(E_ALL);
ini_set('display_errors', 1);

使用这些错误报告方法将有助于找到代码中的错误。

找到它

define('UPLOAD_DIR', 'EventImages/');
$img = $_POST['imgBase64'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);


$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';


$result=mysql_query("SELECT id FROM markers ORDER BY id DESC LIMIT 1");
while ($row = mysql_fetch_array($result)){
$LastInsertID=$row['id'];
}
$results = mysql_query("UPDATE markers SET PhotosEvent='".$file."' WHERE id = '".$LastInsertID."'");    

现在它可以工作了。。我正在标记表标记中最后一个已知的id,并保存存储在数据库变量$file中的图像url!!我还像以前一样将图像保存到文件夹EventImages

您正在尝试插入行或更新现有行吗?更新现有行..更新标记集PhotosEvent='$dataUrl'其中id=$\u会话['id']已更改它…不工作不工作。。。有什么问题吗?它不起作用。。我试过很多种方法。。创建新id并插入任何数据的唯一代码行是:
$imageContentsEscaped=mysql\u real\u escape\u string($success,$connection)
mysql\u查询(“插入标记(PhotosEvent)值(“$ImageContentsCaped”),$connection)但这会插入我的值:161078。我不知道这个值到底是多少。如果我一开始就用“更新标记集”来尝试这行代码,它就不起作用了@monakons使用
var\u dump($results)在您的查询之后,会产生什么结果?@monakons好奇地问。您的表单确实包含
enctype=“multipart/form data”
?@monakons Plus,因为我们正在处理文件,这些
dataURL=$\u POST[“imgBase64”]
最有可能是
dataURL=$\u文件[“imgBase64”]它不会产生任何结果。我不是“呆在”camera.php里看打印出来的东西。。它只是一个用于保存数据的php代码。否我不包含enctype=“多部分/表单数据”。我应该吗?
UPDATE markers SET PhotosEvent = '$dataUrl' WHERE id = '".$_SESSION['id']."'
error_reporting(E_ALL);
ini_set('display_errors', 1);
define('UPLOAD_DIR', 'EventImages/');
$img = $_POST['imgBase64'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);


$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';


$result=mysql_query("SELECT id FROM markers ORDER BY id DESC LIMIT 1");
while ($row = mysql_fetch_array($result)){
$LastInsertID=$row['id'];
}
$results = mysql_query("UPDATE markers SET PhotosEvent='".$file."' WHERE id = '".$LastInsertID."'");