由于某种原因,我没有从这段代码中获得输出。具体来说,从这个if语句:我插入了一个带有测试词的 html 标签,但它从未出现在输出中。我修复了"选择"错别字。仍然得到相同的结果..无输出。.我认为问题出在这种说法上。
$db = new PDO("mysql:dbname=university", "root", "");
我在它之前插入了另一个测试短语 - 成功,紧随其后的另一个 - 没有输出
if($sel=="getinfo"){
try {
$db = new PDO("mysql:dbname=university", "root", "");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$rows = $db->exec("SEEELECT * FROM fminformationtable WHERE FM_ID = '$_POST[iden]'");
?>
test
<?php
}
这是完整的功能
if($sel=="addnew"){
try {
$db = new PDO("mysql:dbname=university", "root", "");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$rows=$db->query("INSERT INTO fminformationtable
VALUES('$_POST[iden]','$_POST[lname]','$_POST[fname]','$_POST[office]','$_POST[ext]','$_POST[hphone]','$_POST[mobile]','$_POST[address]','$_POST[email]','$_POST[syear]','$_POST[tyear]','$_POST[ldegree]','$_POST[ofrom]','$_POST[dyear]','$_POST[rinterest]')");
}
catch (PDOException $ex) {
?>
<p>Your information has been submitted! </p>
<?php
}
if($sel=="update"){
try {
$db = new PDO("mysql:dbname=university", "root", "");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$rows=$db->query("UPDATE fminformationtable SET
Office=`$_POST[office]`,
Extension=`$_POST[ext]`,
HomePhone=`$_POST[hphone]',
MobilePhone=`$_POST[mobile]`,
Adress=`$_POST[address]`,
Email=`$_POST[email]`,
StartingYear=`$_POST[syear]`,
TerminationYrear=`$_POST[tyear]`,
LatestDegree=`$_POST[ldegree]`,
ObtainedFrom=`$_POST[ofrome]`,
DegreeYear=`$_POST[dyear]`,
ResearchInterest=`$_POST[rinterest]`
");
}
catch (PDOException $ex) {
}
}
}
if($sel=="delete"){
try {
$db = new PDO("mysql:dbname=university", "root", "");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$rows = $db->exec("DELETE FROM fminformationtable WHERE FM_ID = '$_POST[iden]'");
}
catch (PDOException $ex) {
}
}
if($sel=="getinfo"){
try {
$db = new PDO("mysql:dbname=university", "root", "");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$rows = $db->exec("SEEELECT * FROM fminformationtable WHERE FM_ID = '$_POST[iden]'");
?>
test
<?php
}
- 您使用的是反引号而不是单引号。
- 你永远不会检查你的函数返回以查看它们是否失败。
- 您正在使用带有空
catch
块的try
来简单地丢弃任何可能有用的信息。例如,导致代码不返回任何数据的错误。 -
SEEEELECT
不是MySQL操作。 - 除非使用
{$array['index']}
否则无法扩展双引号字符串内的数组索引
建议:以 1-3 行的块编写代码,对其进行测试,编写另一个块,对其进行测试,依此类推。这段代码看起来像是在一次未经测试的镜头中编写的。
另外:yadda yadda SQL注入,参数化查询等。