2016-05-04 26 views
0

編輯:這是一個原始代碼,工作正常。對於格式化抱歉。PHP - 通過兩個php文件發送sql命令作爲字符串

<?php 

$target = "images/"; 
    if(!is_dir($target)) mkdir($target); $target = $target . basename($_FILES['photo']['name']); 

$uvod = $_POST['uvod']; $text = $_POST['text']; $nadpis = $_POST['nadpis']; $datum = date("Y-m-d"); 

if (isset($_POST['zobrazeno'])) { 

    $zobrazeno = 1; } else { 

    $zobrazeno = 0; } 

$fname=($_FILES['photo']['name']); $funiquename = uniqid() . $fname; $tmpName = $_FILES['photo']['tmp_name']; $fileSize = $_FILES['photo']['size']; $fileType = $_FILES['photo']['type']; 



$fp  = fopen($tmpName, 'r'); $content = fread($fp, filesize($tmpName)); $content = addslashes($content); fclose($fp); 

if(!get_magic_quotes_gpc()){ $fname = addslashes($fname);} 

require_once 'db_config.php'; $db_server=mysql_connect($db_hostname,$db_username,$db_password); 

if(!$db_server) die("Unable to connect to MySQL" .mysql_error()); 

mysql_select_db($db_database,$db_server) or die("Unable to connect to database" .mysql_error()); 


$sql = "INSERT INTO `aktuality` (`nadpis`, `uvod`, `text`, `datum`, `zobrazeno`, `obr_nazev`, `obr_pripona`, `obr_velikost`, `obr_data`) VALUES ('$nadpis', '$uvod', '$text', '$datum', '$zobrazeno', '$funiquename','$fileType','$fileSize','$content')"; 
    mysql_query($sql); 


if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) { 

echo "The file ". basename($_FILES['photo']['name']). " has been uploaded, and your information has been added to the directory"; 
     } else { 

echo "Sorry, there was a problem uploading your file."; 
    } 
    ?> 

我是一個php初學者。 我有一個通過兩個PHP文件作爲字符串發送SQL命令的問題。

這個php文件應該在sql.php中調用函數sql_string(),但沒有任何反應。

<?php 
    ------some code here------- 
    include 'sql.php'; 
    mysql_query(sql_string1()); 
    ------some code here------ 
?> 

sql.php

<?php 
    function sql_string1() 
    { 
    $sql ="INSERT INTO `aktuality` (`nadpis`, `uvod`, `text`, `datum`, `zobrazeno`, `obr_nazev`, `obr_pripona`, `obr_velikost`, `obr_data`) VALUES ('$nadpis', '$uvod', '$text', '$datum', '$zobrazeno', '$funiquename','$fileType','$fileSize','$content')"; 
    return $sql; 
    } 
?> 

感謝您的幫助!

+0

函數的參數在哪裏? – Thamilan

+0

用'echo sql_string1();'替換'mysql_query(sql_string1());''。我很肯定你會得到迴應。 – Daan

+0

「沒有任何反應」是否意味着它沒有正確執行查詢?我想你會發現你試圖在查詢字符串中嵌入的變量將不可用,因爲它們不在函數的範圍內。 –

回答

1

嘗試做這行的查詢工作:

<?php 
------some code here------- 
include 'sql.php'; 
$sql = sql_string1() ; 
mysql_query($sql) or die(mysql_error()); 
------some code here------ 
?> 

你也應該能看到是什麼錯誤,如果該查詢失敗。

+0

確定數據庫中有新記錄,但爲空。 –

+0

是的,你必須以某種方式爲'$ nadpis','$ uvod','$ text','$ datum','$ zobrazeno','$ funiquename','$ fileType','$ fileSize' ,函數sql_string1()中的'$ content'; 提示:(將其作爲數組傳遞)sql_string1($ valuesArray) 或者直接在sql.php中建立SQL(無需在函數內部插入) – Ren

+0

用於調試,您可以添加'var_dump($ sql);'after '$ sql = sql_string1();'所以你可以看到你正在發送哪個命令到數據庫。 – Michael