2016-05-20 3 views
-2

HTML код:Запрос INSERT INTO не работает?

<form action="create.php" method="post"> 
Username: <input type="text" name="username"><br> 
Password: <input type="text" name="password"><br> 
<input type="submit" value="CREATE ACCOUNT"> 
</form> 

PHP код (create.php):

<?php 


require_once 'studentdb.php'; 
$db_server = mysql_connect($host,$username,$password); 
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error()); 
mysql_select_db($dbname) 
or die("Unable to select database: " . mysql_error()); 
$query = "INSERT INTO credentials (Username,Password) VALUES(".$_POST['username'].",".$_POST['password'].")" 
$make = mysql_query($db_server,$query); 
?> 

В PHP здесь, studentdb.php имеет всю информацию, необходимую для входа в базу данных.

У меня нет ошибок, но таблица просто не обновляется.

+0

Помимо приведенных ниже ответов, вы передаете '$ db_server' в' mysql_query' в качестве первого параметра. 1) Вам вообще не нужно передавать его вообще и 2) если вы это сделаете, то это должен быть второй аргумент. См. [Документация] (http://php.net/mysql_query). –

+0

[Маленький Бобби] ​​(http://bobby-tables.com/) говорит, что [ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent -SQL-инъекция-в-РНР). Даже [избегая строки] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) небезопасно! –

+0

Пожалуйста, [прекратите использование 'mysql_ *' функций] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). [Эти расширения] (http://php.net/manual/en/migration70.removed-exts-sapis.php) были удалены в PHP 7. Узнайте о [подготовленном] (http://en.wikipedia.org/ wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) и подумайте над использованием PDO, [это действительно довольно легко] (http://jayblanchard.net/demystifying_php_pdo.html). –

ответ

0
$query = "INSERT INTO credentials (`Username`,`Password`) VALUES('".$_POST['username']."', '".$_POST['password']."')"; 

Пожалуйста, используйте quotes для строки.

1

$_POST['username'] и $_POST['username'] должны быть строковыми, поэтому вам нужно добавить котировки ' в запрос вставки.

<?php 


require_once 'studentdb.php'; 
$db_server = mysql_connect($host,$username,$password); 
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error()); 
mysql_select_db($dbname) 
or die("Unable to select database: " . mysql_error()); 
$query = "INSERT INTO credentials (Username,Password) VALUES('".$_POST['username']."','".$_POST['password']."')" 
$make = mysql_query($db_server,$query); 
?> 
+0

Используйте цитаты, чтобы решить вашу проблему. @ AJB_1070179 – RJParikh

+0

принять правильный ответ. :) @ AJB_1070179 – RJParikh

0
<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "myDB"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "INSERT INTO MyGuests (firstname, lastname, email) 
VALUES ('John', 'Doe', '[email protected]')"; 

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
?> 
Смежные вопросы