这是我的原帖: 为什么我上传的数据已重命名,以及相应的数据添加到不同的行?
我可以编辑代码一点点(使用我给出的解决方案),因此这是通过插件的形式提交到服务器的图像有同样的名字,因为我上载的文件。
例如:我上传到turtle.jpg的形式,然后单击插入。 文件“turtle.jpg”将被写入所在的服务器(图像/ turtle.jpg)上的数据库。 然后一个成功的消息将弹出。
但每次我发送的数据,图像和其它数据将被插入到2个独立的行数据库。 我不知道为什么。 我也尝试修改我的代码,以便它使用的mysqli替代MySQL的一切都停止工作了。 没有错误,但没有数据发送到数据库中。
这是我的新的PHP代码:
error_reporting(E_ALL); ini_set('display_errors', 1); // Create connection $conn = new mysqli('$host', '$user', '$pass', '$databasename'); // Check connection if (mysqli_connect_error()) { die("Database connection failed: " . mysqli_connect_error()); } if (!empty($_FILES["uploadedimage"]["name"])) { $file_name=$_FILES["uploadedimage"]["name"]; $temp_name=$_FILES["uploadedimage"]["tmp_name"]; $imgtype=$_FILES["uploadedimage"]["type"]; $ext= GetImageExtension($imgtype); $imagename= $_FILES['uploadedimage']['name']; $target_path = "images/".$imagename; $result = $mysqli->query("INSERT INTO charts ( charts_URL ) VALUES ('".$target_path."')"); or die(mysqli_error($mysqli)); } else { echo "<p> It is not working </p>"; } if(isset($_POST['submit'])){ // Fetching variables of the form which travels in URL $date = $_POST['date']; $retrace = $_POST['retrace']; $start_of_swing_trade = $_POST['start_of_swing_trade']; $end_of_swing_trade = $_POST['end_of_swing_trade']; $bull_flag = $_POST['bull_flag']; $bear_flag = $_POST['bear_flag']; $ema_crossover = $_POST['ema_crossover']; $trading_instrument = $_POST['trading_instrument']; if($date !=''||$trading_instrument !=''){ //Insert Query of SQL $sql = "INSERT into charts (charts_date, charts_retrace, charts_start_of_swing_trade, charts_end_of_swing_trade, charts_bullflag, charts_bearflag, charts_ema_crossover, charts_trading_instrument) VALUES ('$date', '$retrace', '$start_of_swing_trade', '$end_of_swing_trade', '$bull_flag', '$bear_flag', '$ema_crossover', '$trading_instrument')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } } mysqli_close($conn); // Closing Connection with Server
将数据插入到数据库中唯一的一次,当我使用旧的mysql_query代码。 但是,我的数据库表示支持mysqli扩展。
Database server
Server: Localhost via UNIX socket
Server type: MySQL
Server version: 5.5.35-cll-lve - MySQL Community Server (GPL)
Protocol version: 10
User: cpses_msLpFymSYl@localhost
Server charset: UTF-8 Unicode (utf8)
Web Server
cpsrvd 11.48.1.2
Database client version: libmysql - 5.1.73
PHP extension: mysqli Documentation
phpmyadmin
Version information: 4.0.10.7, latest stable version: 4.4.2
下面是我当前的PHP代码片段(这基本上是你在你的解决方案发布的代码)与GetImageExtension
功能补充说:
if(isset($_POST['submit'])){ $conn = new mysqli($host, $user, $pass, $databasename); // Check connection can be established if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } function GetImageExtension($imagetype) { if(empty($imagetype)) return false; switch($imagetype) { case 'image/bmp': return '.bmp'; case 'image/gif': return '.gif'; case 'image/jpeg': return '.jpg'; case 'image/png': return '.png'; default: return false; } } $target_path = ''; if (!empty($_FILES["uploadedimage"]["name"])) { $file_name=$_FILES["uploadedimage"]["name"]; $temp_name=$_FILES["uploadedimage"]["tmp_name"]; $imgtype=$_FILES["uploadedimage"]["type"]; $ext= GetImageExtension($imgtype); $imagename= $_FILES['uploadedimage']['name']; $target_path = "images/".$imagename; $date = $_POST['date']; $retrace = $_POST['retrace']; $start_of_swing_trade = $_POST['start_of_swing_trade']; $end_of_swing_trade = $_POST['end_of_swing_trade']; $bull_flag = $_POST['bull_flag']; $bear_flag = $_POST['bear_flag']; $ema_crossover = $_POST['ema_crossover']; $trading_instrument = $_POST['trading_instrument'];