2015-11-12 2 views
1

Я работаю с электронной базами данных imp + MySQL. Я пытаюсь передать мои значения imp MySQL в PHP, но он показывает пустые записи, любая идея почему? Я пробовал все, но не могу понять, что происходит.Почему база данных MySQL регистрирует пустое пространство?

PHP

<?php 

// Set your default timezone 
define('DB_NAME', 'db_name'); 
define('DB_USER', 'db_user'); 
define('DB_PASSWORD', 'db_pass'); 
define('DB_HOST', 'db_host'); 

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); 

if (!$link) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

$db_selected = mysql_select_db(DB_NAME, $link); 

//read the json file contents 
$jsondata = file_get_contents('value'); 

//convert json object to php associative array 
$data = json_decode($jsondata, true); 

//get info 
$status = $data['status']; 

if (!$db_selected) 
{ 
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error()); 
} 

$value = $_POST ['status']; 

$sql = "INSERT INTO imp (status) VALUES ('$value')"; 

if (!mysql_query($sql)) 
{ 
    die('Error: ' . mysql_error()); 
} 

echo "<h5>Message Successfully Sent!</p></h5>"; 

mysql_close(); 

?> 
+1

Поскольку '$ value' пусто? –

+1

Вы отправляете значение 'status'? Также обратите внимание, что ваш код * широко открыт * для ** SQL-инъекций **. – David

+3

Также вы смешиваете функции mysqli и mysql. –

ответ

0

Вы можете использовать что-то вроде следующего, используя PDO и подготовленные заявления, чтобы избежать SQL Injection:

define('DB_HOST', 'your_host'); 
define('DB_NAME', 'your_db_name'); 
define('DB_USER', 'your_username'); 
define('DB_PASSWORD', 'your_password'); 

try { 
    //Make your connection handler to your database 
    $conn = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME, DB_USER, DB_PASSWORD, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING)); 

    $jsondata = file_get_contents('value'); 

    //convert json object to php associative array 
    $data = json_decode($jsondata, true); 

    //get info 
    $status = $data['status']; 
    $value = $_POST['status']; 


    $sql = "INSERT INTO imp (status) VALUES (:status)"; 
    $stmt = $conn->prepare($sql); 
    $stmt->execute(array(':status'=>$value)); 

    if ($stmt->rowCount() > 0) { 
     echo "<h5>Message Successfully Sent!</p></h5>"; 
    } 

} catch(PDOException $e) { 
    echo $e->getMessage(); 
    die(); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^