2014-01-12 3 views
-1

Я хочу вставить некоторую информацию в таблицу, но она не работает. Это код.Невозможно вставить в мою базу данных с помощью PHP

<?php 
    $con=mysql_connect("localhost","Chew","*****","Birthdays"); 
    if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
    $Name="Something"; 
    $Desc="Something"; 
    $Lang="En"; 
    $D="1"; 
    $M="1"; 
    echo "<br>"; 
    $sql = "INSERT INTO `Birthdays` (Name, Description, Language, Day, Month) VALUES ('".$Name."', '".$Desc."', '".$Lang."', '".$D."', '".$M."');"; 
    $qr= mysql_query($con, $sql) or die("Error: " . mysql_error()); 
    mysql_close($con); 
?> 
+0

ли давать какие-либо ошибки? – MrVimes

+0

Какие типы данных представляют собой столбцы «День» и «Месяц»? – MillaresRoo

ответ

1

MONTH и DAY являются имена MySQL functions. Если вы собираетесь назвать столбцы с этими именами вы должны избежать их с клещами:

$sql = "INSERT INTO `Birthdays` (Name, Description, Language, `Day`, `Month`) VALUES ('".$Name."', '".$Desc."', '".$Lang."', '".$D."', '".$M."');"; 
0

чтения mysql_query

$qr= mysql_query($sql, $con) or die("Error: " . mysql_error()); 

NB: mysql_ * осуждается, использование mysqli_ * или PDO

0

Если D и M являются номерами, ваш SQL не должен использовать кавычки (') в VALUES-части вашего SQL

0

Вы должны использовать O ▪ Таблица Oriented механизм для выполнения соединения с MySQL с помощью класса MySQLi

пример

// The var's in complete caps means they might be defined as constant variable 
// DB_HOST - database hostname 
// DB_USER - database user 
// DB_PASS - database password 
// DB_NAME - database instance name 

$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
if($db -> connect_error){ 
// in case there are errors 
die("Connect Error (" . $db -> connect_errno . ") " . $db -> connect_error); 
} 

$Name= mysql_real_escape_string("Something"); // helps to escape special characters like quotes 
$Desc= mysql_real_escape_string("Something"); 
$Lang="En"; 
$D="1"; 
$M="1"; 

$sql = "INSERT INTO `Birthdays` (Name, Description, Language, `Day`, `Month`) VALUES ('".$Name."', '".$Desc."', '".$Lang."', $D, $M);"; 

$db -> query($sql) or die("Error: " . $db -> error_msg); 

echo "Insert id: " . $db -> insert_id; 

EDIT: Код для извлечения данных из базы данных

C_Chewbacc,

Я бы порекомендовал вам на чтение подробнее о подключении PHP-MySQL с использованием объектно-ориентированного механизма http://in2.php.net/mysqli

Попробуйте ниже

$sql = "SELECT * FROM Birthdays"; 
$result = $db -> query($sql); // SELECT query returns result object here 
// We iterate over this result object and fetch each row on every iteration 
// When the resultant object has nothing to return, NULL is initialised in $row 
// When $row = NULL becomes the exit point of WHILE loop 
while($row = $db -> fetch_array($result)){ 
    var_dump($row); // This will display every row of data 
} 
+0

Спасибо @rsakhale, это сработало. У меня тоже есть вопрос. Как получить выбранные данные с помощью SELECT * FROM «Дни рождения»? –

+0

C_Chewbacca, добавили код для извлечения данных, пожалуйста, обратитесь к моему предыдущему ответу edit :) – rsakhale

+0

Thanks @rsakhale ^^ –

0

@rsakhale этот код, код для извлечения данных не работал для меня:

<?php 
$db = new mysqli('localhost', 'Chew', '*****', 'Birthdays'); 
if($db -> connect_error){ 
    // in case there are errors 
    die("Connect Error (" . $db -> connect_errno . ") " . $db -> connect_error); 
    } 
    $sql = "SELECT * FROM Birthdays"; 
    $result = $db -> query($sql); 
    while($row = $db -> fetch_array($result)){ 
     var_dump($row); 
    } 
?> 
Смежные вопросы