0
<?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

4 回答 4

1

SQL 语句的格式如下:

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

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

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

或者

$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

于 2012-12-10T02:46:34.820 回答
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')";
于 2012-12-10T01:31:15.157 回答
0

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

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

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

我假设 CiniUsers 是表名,用户名是列名。

于 2012-12-10T01:32:49.867 回答
-1

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

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

没有验证,这不是一个好主意,或者这样事情很容易。

于 2012-12-10T01:32:33.127 回答