php查询将字符串插入数据库

时间:2012-12-10 01:23:38

标签: php sql

<?php

$username = $_POST['username'];
$password = $_POST['password'];

if($username&&$password)
{

$connect = mysql_connect("CiniCraftData.db.55555555.hostedresource.com", "CiniCraftData", "*********") or die("Couldn't Connect");
mysql_select_db("CiniCraftData") or die ("Couldn't Find Database"); 

            $query = "INSERT INTO CiniUsers ('username.CINIDAT') VALUES('$username')";
            $result = mysql_query($query) or die("Error occurred.");

}
else die("Please enter a username and password.");

?>

对于这部分代码:

$query = "INSERT INTO CiniUsers ('username.CINIDAT') VALUES('$username')";

VALUES似乎无法正常工作,我需要将$ username的字符串值插入到我的CiniUsers数据库中。我需要做些什么才能使上面的代码工作?我是php和sql语法的新手,我在网上找到的指南彼此完全不同,就像他们不断更新php一样。

4 个答案:

答案 0 :(得分:1)

尝试查看此部分:

$query = "INSERT INTO CiniUsers ('username.CINIDAT') VALUES('$username')";

语法为:

$query = "INSERT INTO table (column) VALUES ('$strvar')";

您要插入的列名是什么?
如果是username.CINIDAT,请尝试删除qoutes。

像这样:

$query = "INSERT INTO CiniUsers (username.CINIDAT) VALUES ('$username')";

或者您的列名为username,所以:

$query = "INSERT INTO CiniUsers (username) VALUES ('$username')";

<强>更新
来自评论的查询,将其更改为:

$query = "INSERT INTO CiniUsers (username.CINIDAT) VALUES ('$username')";

答案 1 :(得分:1)

SQL语句的格式如下:

INSERT INTO nameOfTable (column1, column2, column3, etc) VALUES ('column1', 'column2', 'column3', 'etc')

您必须确保使用与MySQL中存储的字段名称完全相同的字段名称。 您的SQL可能如下所示:

$query = "INSERT INTO CiniUsers (username) VALUES('$username')";

OR

$query = "INSERT INTO CiniUsers (username) VALUES('{$username}')";

另一件可能有用的事情是你的die()语句不是很有用。是的,当你的php程序提前退出时,它是一个无赖,但如果你知道为什么它退出它会节省你很多时间和挫折。虽然您可能仍在学习PHP和MySQL,并且可能不知道错误的含义,但是当您看到它们时,它们将开始变得有意义,并且可以告诉您查询是否错误,连接失败或更多事情。换成这样的东西:

$connect = mysql_connect("CiniCraftData.db.55555555.hostedresource.com", "CiniCraftData", "*********") or die("Couldn't Connect: mysql_error()");
mysql_select_db("CiniCraftData") or die ("Couldn't Find Database: mysql_error()");
...
$result = mysql_query($query) or die("Some kind of error occurred...Query failed: mysql_error()");

你发现看到mysql_error()会帮助你更快地解决这个问题。

使用phpMyAdmin测试您的查询,您的查询可能正常工作。这是确实知道的唯一方法。使用建议的SQL并将PHP变量替换为一些虚拟数据,如“testUsername_1”。如果查询有效,您将手动将用户名添加到数据库中,否则,问题出在SQL语句中。

如果您需要更多详细信息,请参阅以下SQL INSERT INTO语句的一些文档: http://www.w3schools.com/sql/sql_insert.asp

答案 2 :(得分:0)

我认为你应该使用mysqli或pdo。您正在使用的这个新闻稿已被弃用。

那说什么是username.CINIDAT?我认为这就是你的问题所在。它应该是这样的

  

$ query =“INSERT INTO CiniUsers(用户名)VALUES('$ username')”;

我假设CiniUsers是表名,username是列名。

答案 3 :(得分:-1)

最简单的方法是通过将语句与值连接来构建查询。

$query = "INSERT INTO CiniUsers ('username.CINIDAT') VALUES('".$username."')";

如果没有验证,这不是一个好主意,或类似this之类的东西很容易。