我正在尝试使用简单的表单将图像上传到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";
}
?>
提前致谢。 Ĵ
答案 0 :(得分:0)
查询看起来很好,所以唯一的逻辑解释是您尝试插入的数据类型不相同。确保imagedata
和varchar
数据类型为<?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}}