我的插件无法正常工作,无论如何都会在数据库中插入任何内容。
$sql= "INSERT INTO 'users' (`id`, `username`, `password`) VALUES (NULL, '$newusername', '$newpassword')";
我做错了什么? :( 是的,我已经在剧本的早期连接到了数据库。
编辑:继承人我的整个.php
<?php
if (isset($_POST['submit'])){
$newusername = $_POST['newusername'];
$newpassword = $_POST['newpassword'];
$newpassword2 = $_POST['confirmnewpassword'];
$query = "SELECT * FROM users WHERE username = '$newusername' AND password = '$newpassword'";
if(strlen($newusername) > 5 || strlen($newusername)< 25){
echo "username length check is fine<br>";
if(strlen($newpassword) > 4 || strlen($newpassword2) < 25){
echo "Pass check worked lel<br>";
if($newpassword == $newpassword2 ){
echo "Should all be working!<br>";
$connect = mysqli_connect("localhost","root","") or die("Couldnt connect!");
mysqli_select_db($connect,"phplogin") or die("Couldnt find DB.");
$sql="INSERT INTO users (username,password) VALUES('$newusername','$newpassword')";
}
else
die("Passwords did not match");
}
else
die('Password wasnt long enough');
}
else
die("Username was not long enough");
}
对于凌乱的代码感到抱歉。我感觉我已经留下了一些非常明显的东西。
答案 0 :(得分:1)
在PHP中,您应该设置错误级别,以便在事情变得奇怪时让您知道:
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('scream.enabled', false);
使用这些设置,您将开始看到一些PHP错误,例如尝试访问您希望由DB填充的数组的内容,但事实上并非如此(并且它们甚至可能不是数组)。这些是让您认为SQL查询由于某种原因失败的提示。
很可能你的数据库正在告诉你究竟发生了什么,你只是不检查它说的是什么。数据库中的错误以3种方式显示:空结果,错误而不是预期结果,如果您检查它,则可以使用错误消息。
每一步后检查错误:
mysql_*
或mysqli_*
功能); mysqli_
或PDO
); 我将假设您使用mysqli_*
函数并提供示例(原始here):
/** somewhere in the DB connection file */
$mysqlErrors = array();
/*...*/
/** somewhere in your logic files */
$rows = mysqli_query($link, "SET a=1");
if ($rows === false) {
$mysqlErrors[] = mysqli_error($link);
}
/*...*/
/** somewhere in your template files */
foreach ($mysqlErrors as $mysqlError) {
printf("Errormessage: %s\n", $mysqlError);
}
答案 1 :(得分:0)
(1) do this, id as auto increment then no need to include at insert time
$sql= "INSERT INTO 'users' ( `username`, `password`) VALUES ('$newusername', '$newpassword')";
答案 2 :(得分:0)
$sql= "INSERT INTO 'users' ( `username`, `password`) VALUES ('$newusername', '$newpassword')";
// add the following code below the line above
$result = mysqli_query($con, $sql);
答案 3 :(得分:-3)
使用撇号代替严重重音 `=严重的口音,或者(因为有人需要发明一个词)反击 '=撇号,或单引号
(`id`, `username`, `password`)
你应该使用这个
('id', 'username', 'password')