我正在学习php并保持简单(我认为),这就是我在下面尝试做的事情。
- 迄今为止的工作:
我制作了一个小型迷你表格,我想做的是当这个人输入他们的电子邮件地址时,会发生以下几件事:
接下来的流程页面会显示一条自定义消息,例如“你好名字在这里,很抱歉看到你去等等吧”
现在我还没有编写帐户删除部分,因为我收到了错误。我在DW或Aptana中没有得到语法或任何其他错误。我正在测试时。 我收到的错误是:注意:使用未定义的常量mysqli_error - 在第32行假设'mysqli_error',这行是
$sn_nameQueryStringResults = mysqli_query($connect2db, $sn_nameQueryString) or die( "Sorry but theres a connection to database error" . mysqli_error);
这是我到目前为止的形式:
<form method="post" action="snDelAcc_proc.php">
<table width="500" border="0">
<tr>
<td>Enter your email address here:</td>
<td>
<input type="text" name="accDel" width="250" >
</td>
</tr>
<tr>
<td>
<input type="submit" name="submit">
</td>
</tr>
</table>
这是流程页面:
<?php
// - - connect to db.
$connect2db = mysqli_connect('127.0.0.1','root','passhere','dbtest');
if(!$connect2db){
die("Sorry but theres a connection to database error" . mysqli_error);
}
//get emailfrom first page.
$emailaddy = $_POST['accDel'];
$sn_nameQueryString = " SELECT FROM email_list WHERE email = '$emailaddy'";
$sn_nameQueryStringResults = mysqli_query($connect2db, $sn_nameQueryString) or die( "Sorry but theres a connection to database error" . mysqli_error);
//get the name with fetch
$actualFnameGet = mysqli_fetch_array($sn_nameQueryStringResults);
//$sn_query = " DELETE FROM email_list WHERE email= ";
echo $actualFnameGet['firstname'];
?>
为什么我错了任何想法? 我有点失落,提前谢谢。
答案 0 :(得分:2)
首先,由于mysqli_error是一个函数,因此无法打印您的错误,因此您必须编写mysqli_error()
。
其次,您的查询中有错误:输入您想要的所有字段或只输入*
:
SELECT * FROM email_list WHERE email = ...
最后但同样重要的是,您的查询非常容易受到sql注入的影响,方法是将post变量$emailaddy
直接放入查询而不转义它,因此您应该使用:
"SELECT * FROM email_list WHERE email = '".mysqli_real_escape_string($emailaddy)."'";
答案 1 :(得分:1)
mysqli_error
是一个函数,应该是mysqli_error($link)
,其中$link
是连接。
在您的情况下mysqli_error($connect2db)
。