我当前正在尝试创建一个注册脚本,以便将注册信息输入到我的UserAccount表中。下面是我的连接:
<?php
//database preparation
$usr = "username";
$pwd = "password"; //put your php password
$host = "computing";
$db = $usr;
$conn = mysqli_connect($host, $usr, $pwd, $db);
if (!$conn){
echo "<p>server connection error:
mysqli_connect_error()</p>";
}
$_SESSION['conn'] = $conn; //database connection status
transfer;
?>这是我在注册时遇到的困难。
<?php
include "conn.php";
$email_address = $_POST['email_address'];
$password = md5($_POST['password']);
$f_name = $_POST['f_name'];
$s_name = $_POST['s_name'];
$insert = 'INSERT INTO UserAccount(email_address, password, f_name, s_name)
VALUES("'.$email_address.'","'.$password.'","'.$f_name.'","'.$l_name.'")';
mysql_query($insert);
?>当我输入信息时,我得到一个空白页面,并且没有数据条目到我的表中,我想知道为什么?
发布于 2013-03-14 00:07:36
你有一个打字错误
mysql_query($insert);应为mysqli_query($insert);
您不能在mysqli连接上执行mysql查询。
发布于 2013-03-14 00:05:33
您必须查看您的查询是否正在执行?您的查询返回的错误是什么?试一试
mysqli_query($conn,$insert) or die(mysqli_error($conn));这将告诉你为什么没有数据。是您迁移到MYSQLI或PDO的好时机
编辑:
此外,您还使用了一个以前没有声明过的变量$l_name。在查询中,它应该是$s_name。很可能您的表被设置为不接受l_name的空值,这就是它失败的原因
发布于 2013-03-14 00:07:54
通过更改前后的单引号和双引号来尝试以下操作:
$insert = "INSERT INTO UserAccount(email_address, password, f_name, s_name)
VALUES('".$email_address."','".$password."','".$f_name."','".$l_name."')";这是一个很好的实践!页面将是空白的,但至少您应该在表格中获得条目。
还要检查数据库名称$db是否应该与$usr相同?这是正确的吗?
$db = $usr;这不应该是这样的吗?
$db = "databaseName";最后的想法:
有一个关键字变量transfer;,看起来很有趣。由于php错误报告/处理的设置,它可能会导致错误,但不会显示/报告错误,因此会出现空白页面。在代码中的特定位置使用echo查看它停止的位置。
它应该是$transfer;吗?它应该接收一个变量吗?
另一种想法是,如果你有$_SESSION['conn'],那么在开始的<?php标签后面应该有一个session_start();。这可能会导致conn.php失败,从而破坏INSERT。
https://stackoverflow.com/questions/15390425
复制相似问题