0

目前正在使用 php 脚本和 sql 数据库。一切似乎都可以正常工作,即使在最后呼应用户名时,它似乎也是成功的。当进一步查看数据库中的插入时,未插入行。没有错误消息,插入语句准确地反映了列......有什么想法吗?

<?php
$db_name = "animator"; // Database name
$link = mysql_connect('localhost', 'root', 'admin');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

mysql_select_db($db_name) or die("Could not connect to Database" .mysql_error());

$username  = $_POST['fname'];
$passwords = $_POST['pass'];
$email     = $_POST['email'];

mysql_query($link,"INSERT INTO 'account'('username', 'passwords', 'email') VALUES 
($username , $passwords , $email)");

mysql_close($link);
?>

***更新* *** 非常感谢大家的回复。我终于能够使用我发现的另一种技术让它工作。

<?php
error_reporting(E_ALL);
ini_set('display_errors',"On");
$db_name = "animator"; // Database name
$link = mysql_connect('localhost', 'root', 'admin');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
//echo 'Connected successfully';
mysql_select_db($db_name) or die("Could not connect to Database" .mysql_error());

$username = $_POST['fname'];
$passwords = $_POST['pass'];
$email = $_POST['email'];

$query =  "INSERT INTO account (username, passwords, email) VALUES ('$username', 
'$passwords', '$email')";
$result = mysql_query($query);
echo $username;
mysql_close($link);
?>
4

3 回答 3

1

尝试删除帐户周围的引号或在帐户周围使用`

于 2013-06-07T01:23:15.427 回答
1

引号用于字符串;反引号用于表名和列名转义

mysql_query("INSERT INTO account (username, passwords, email) 
VALUES ('$username', '$passwords', '$email')", $link);

因此,从表名和列名中删除引号并将它们添加到值中。

不要在新代码中使用 mysql_* 函数。它们不再被维护并被正式弃用。改为了解Prepared Statements,并使用PDOMySQLi。请参阅本文以快速概述如何执行此操作以及它为何如此重要。

于 2013-06-07T01:25:43.517 回答
0

两件事情...

首先,您不应该将 PHPmysql用于新的开发……认真阅读MySQLi!(另外,对于初学者来说,一篇很棒的博文:http: //codular.com/php-mysqli

其次,如果您必须使用mysql,并且如果 PHP 没有返回任何错误,您可以使用mysql_error()来诊断问题。

PS 检查 PHP 错误使用:

error_reporting(E_ALL);
ini_set('display_errors',"On");
于 2013-06-07T01:41:02.253 回答