php - 将JPEG插入SQL数据库时发出警告

时间:2015-06-18 09:12:16

标签: php sql

我正在尝试使用简单的表单将图像上传到SQL服务器,但是我遇到了以下警告,这也阻止我上传图像:

  

警告:odbc_exec():在第10行的C:\ wamp \ www \ inputform \ index2.php

第10行$sql_run = odbc_exec($con, $sql);

代码是:

<?php

require ('connect.inc.php');

    if(ISSET($_POST['submit'])){
            $imagename = $_FILES["image"]["name"];
            $imagedata = file_get_contents($_FILES["image"]["tmp_name"]);
            echo $imagename." ".$imagedata;
            $sql = "INSERT INTO test.dbo.images (imageid, imagedata)  VALUES('','$imagedata')";
            $sql_run = odbc_exec($con, $sql);
                echo "Query with the following details has been executed: <br>".$imagename;


    }
    else{
        echo 'Is not set';
    }
?>
<form action="index2.php" method="POST" enctype="multipart/form-data">
    Image: <input type="file" name="image"><br>
    <input type="submit" value="Submit" name="submit">
</form>

文件connect.inc.php包含以下代码:

<?php
$serverName="TESTSERV\SQLEXPRESS";
$dsn='odbc-test';
$user = 'user';
$password = 'password';
$db = 'test';
if(!$con = odbc_connect($dsn, $user, $password)){
    echo "Not Connected";
}
?>

提前致谢。 Ĵ

1 个答案:

答案 0 :(得分:0)

查询看起来很好,所以唯一的逻辑解释是您尝试插入的数据类型不相同。确保imagedatavarchar数据类型为<?php require ('connect.inc.php'); if(ISSET($_POST['submit'])){ $imagename = $_FILES["image"]["name"]; $imagedata = (binary)file_get_contents($_FILES["image"]["tmp_name"]); echo $imagename." ".$imagedata; $sql = "INSERT INTO test.dbo.images (imageid, imagedata) VALUES('','.$imagedata.')"; $sql_run = odbc_exec($con, $sql); echo "Query with the following details has been executed: <br>".$imagename; } else{ echo 'Is not set'; }

编辑:确保数据类型相同。这是更新的答案。

$imagedata = (binary)file_get_contents($_FILES["image"]["tmp_name"]);

&GT;

注意:{{1}}