2014-09-02 3 views
1

Я работаю с базами данных почти на один год, и на этот раз, когда я попробовал mysql и php, он не работает, и я попытался использовать функцию mysqli_error(), и это тоже не работает. Я создал базу данных и это очень простая таблица с 2-мя колоннами и она не работает, либо я задаюсь вопросом, что я могу сделать по этому поводу вот что я пыталсяmysql insert query failed in php

<?php 
    $cnn=mysqli_connect("localhost","root","password"); 
    if(!$cnn){ 
    die("data base connection failed :" . mysqli_error()); 
    } 
    //select a kimai fekr db 
    $db_select=mysqli_select_db($cnn,"testi"); 
    if (!$db_select){ 

    die("database selection failed:" . " " . mysqli_error()); 
    } 
?> 
<?php 
$uname="morteza"; 
$id=1; 
$query="insert into test ('id','uname') values ($id,'{$uname}')"; 
$result=mysqli_query($cnn,$query); 
if($result){ 
    echo "<p>user added</p>"; 
} 
else{ 
echo "<p>user not added </p>" . mysqli_error('$cnn');} 
mysqli_close($cnn); 
    ?> 

ответ

3

не используйте одинарные кавычки вокруг идентификаторов столбцов. Использование клещей или вообще ничего:

$query="insert into test (id,uname) values ($id,'{$uname}')"; 

или

$query="insert into test (`id`,`uname`) values ($id,'{$uname}')"; 
+1

я писал мое в то же самое время, лол я не видел твое, когда я делал это. –

+1

Это не делает его менее правильным! :) +1 –

+0

Правда правда. Я буду вашим +1, потому что ваш был первым;) –

4

Те, не не правильный column identifiers

('id','uname') 
^^^ ^

либо удалить их

(id,uname) 

или использовать кавычку

Отчеты об ошибках
(`id`,`uname`) 

Добавить в верхней части файла (ов) сразу после открытия <?php тега error_reporting(E_ALL); ini_set('display_errors', 1); который бы сигнализировал ошибку

, а также or die(mysqli_error($cnn)) к mysqli_query()


Plus , ваш действующий код открыт для SQL injection. Используйте prepared statements, или PDO with prepared statements, они безопаснее.

+1

+1 для решения плюс предупреждение и решение SQL-инъекции –

+0

@LemuelBotha Спасибо Lemuel, * cheers * –

0

Вы можете попробовать это

$query="insert into test (`id`,`uname`) values ('$id','{$uname}')";