2015-05-02 6 views
-2

ok, поэтому я могу подключиться и просмотреть базу данных с помощью своего php-кода, однако я не могу вставлять в него данные. Здесь я проверил запрос с phpmyadmin, который смог вставить новые данные в мой столНевозможно вставить данные в mysql с php

INSERT INTO `members` (`id` , `username` , `email`) 
VALUES (123456789, 'russi', '[email protected]') 

я попытался поместить его в мой реальный файл PHP

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "blablabla"; 
$dbname = "test_database"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$sql = "INSERT INTO 'members' ('id', 'username', 'email') 
VALUES (2339978, 'vladtheimpalor', '[email protected]')"; 
$sql = "SELECT id, username, email FROM members"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "id: " . $row["id"]. " - username: " . $row["username"]. " -email:" . $row["email"]. "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 
$conn->close(); 
?> 

так выберите функцию работы, но вставка не делает.

+1

Ваш запрос INSERT немедленно перезаписывается SELECT, запрос и никогда не выполняется. –

ответ

2

Вы подменяете $sql переменные без его выполнения. Кроме того, вы не должны использовать одиночные кавычки для столбцов, но обратные кавычки (см When to use single quotes, double quotes, and backticks in MySQL)

Изменить

$sql = "INSERT INTO 'members' ('id', 'username', 'email') 
VALUES (2339978, 'vladtheimpalor', '[email protected]')"; 
$sql = "SELECT id, username, email FROM members"; 
$result = $conn->query($sql); 

в

$sql = "INSERT INTO `members` (`id`, `username`, `email`) 
VALUES (2339978, 'vladtheimpalor', '[email protected]')"; 
$result = $conn->query($sql); 
$sql = "SELECT id, username, email FROM members"; 
$result = $conn->query($sql); 
+0

по какой-то причине все еще не работает, поэтому мне нужно будет проверить с моим профи, что происходит там – alkokarko

+0

Попробуйте прочитать '$ conn-> error' (https://php.net/manual/de/mysqli.error.php) – MrTux

+0

исправил проблему, у меня были некоторые элементы в истории, которые не имели значений по умолчанию. – alkokarko

0

удалить одиночные кавычки вокруг имен столбцов и таблиц:

$sql = "INSERT INTO members (id, username, email) 
VALUES (2339978, 'vladtheimpalor', '[email protected]')"; 

одиночные кавычки используются только для символьных полей.

Также вы никогда не выполняете заявление вставки, потому что вы перезаписываете его.

1

Изменить ваш вкладыш к:

$sql = "INSERT INTO members (id, username, email) 
VALUES (2339978, 'vladtheimpalor', '[email protected]')"; 

И позвоните Вашему запросу:

$sql = "INSERT INTO members (id, username, email) 
VALUES (2339978, 'vladtheimpalor', '[email protected]')"; 
//Here, you never execute your query 
$result = $conn->query($sql); 

$sql = "SELECT id, username, email FROM members"; 
$result = $conn->query($sql); 
+0

@Jens Sure был кто-то, кто любит кнопку Down Vote ;-) –

1

Конечно, это не сработало!

Вы никогда не выполнить свой INSERT ...

<?php 
... 
$sql = "INSERT INTO 'members' ('id', 'username', 'email') 
VALUES (2339978, 'vladtheimpalor', '[email protected]')"; 
$conn->exec($sql); 
$sql = "SELECT id, username, email FROM members"; 
$result = $conn->query($sql); 
... 

:)

+0

Нет метода 'exec', есть ли? (https://php.net/manual/de/class.mysqli.php) также одинарные кавычки ошибочны. – MrTux

0
$sql = "INSERT INTO 'members' ('id', 'username', 'email') 
VALUES (2339978, 'vladtheimpalor', '[email protected]')"; 
$sql = "SELECT id, username, email FROM members"; 
//missing the grave accent 
$sql = "INSERT INTO `members` (id, username, email) 
VALUES (2339978, 'vladtheimpalor', '[email protected]')"; 

$sql = "SELECT `id`, `username`, `email` FROM `members`"; 

/* This is the corrrected code */ 
Смежные вопросы