PHP和MySQL:添加到数据库和检索的代码有什么问题
它应该允许您向数据库添加个人链接,并且服务器运行的是带有MySQL和Active Directory的WindowsServer2008R2PHP和MySQL:添加到数据库和检索的代码有什么问题,php,mysql,Php,Mysql,它应该允许您向数据库添加个人链接,并且服务器运行的是带有MySQL和Active Directory的WindowsServer2008R2 <?php $dbl = mysql_connect('localhost', 'USERNAME', 'PASSWORD') or die('failed to connect to mysql'); mysql_select_db('linksdatabase') or die('failed to select database');
<?php
$dbl = mysql_connect('localhost', 'USERNAME', 'PASSWORD') or die('failed to connect to mysql');
mysql_select_db('linksdatabase') or die('failed to select database');
if(isset($_POST['linkaddress']) && isset($_POST['linkname']))
$sql = "INSERT INTO userlinks (username, linkaddress, linkname) VALUES ('%s','%s','%s')";
mysql_query ( sprintf ( $sql, mysql_real_escape_string ( $_SERVER ['AUTH_USER'] ), mysql_real_escape_string ( $_POST ['linkaddress'] ), mysql_real_escape_string ( $_POST ['linkname'] ) ) );
echo '<p>Links:</p><ul>';
$result = mysql_query ( sprintf ( "SELECT linkaddress, linkname FROM userlinks WHERE username = '%s'", mysql_real_escape_string ( $_SERVER ['AUTH_USER'] ) ) );
while($row = mysql_fetch_array($result))
echo '<li><a href="', htmlentities($row['linkaddress']), '">', htmlentities($row['linkname']), '</a></li>';
echo '</ul>';
?>
<form action="" method="post">
<fieldset>
<legend>Add a Link</legend>
Address: <input type="text" name="linkaddress" /><br />
Name: <input type="text" name="linkname" /><br />
<input type="submit" value="Add" />
</fieldset>
</form>
您有一些单报价问题 替换
mysql_query('INSERT INTO userlinks (username, linkaddress, linkname) VALUES (\'' . mysql_real_escape_string($_SERVER['AUTH_USER']) . '\', \'' . mysql_real_escape_string($_POST['linkaddress']) . '\', \'' . mysql_real_escape_string($_POST['linkname']) . '\'');
$result = mysql_query('SELECT linkaddress, linkname FROM userlinks WHERE username = \'' . mysql_real_escape_string($_SERVER['AUTH_USER']) . '\'');
与
替换
mysql_query('INSERT INTO userlinks (username, linkaddress, linkname) VALUES (\'' . mysql_real_escape_string($_SERVER['AUTH_USER']) . '\', \'' . mysql_real_escape_string($_POST['linkaddress']) . '\', \'' . mysql_real_escape_string($_POST['linkname']) . '\'');
$result = mysql_query('SELECT linkaddress, linkname FROM userlinks WHERE username = \'' . mysql_real_escape_string($_SERVER['AUTH_USER']) . '\'');
与
此代码可能会帮助您找到错误
查询末尾缺少一个结束括号
mysql_query('INSERT INTO userlinks (username, linkaddress, linkname) VALUES (\'' . mysql_real_escape_string($_SERVER['AUTH_USER']) . '\', \'' . mysql_real_escape_string($_POST['linkaddress']) . '\', \'' . mysql_real_escape_string($_POST['linkname']) . '\')');
这不是一个完整的答案,但在开发时请尝试换行-在此处粘贴代码时,可以使您在IDE中的生活更轻松:
$sql = "
INSERT INTO userlinks
(username, linkaddress, linkname)
VALUES ('%s','%s','%s')
";
mysql_query(
sprintf(
$sql,
mysql_real_escape_string( $_SERVER ['AUTH_USER'] ),
mysql_real_escape_string( $_POST ['linkaddress'] ),
mysql_real_escape_string( $_POST ['linkname'] )
)
);
这使得无需水平滚动即可轻松阅读所有内容,同时也使检查括号匹配变得简单。Um到底什么不起作用?是否有错误消息?检查每个mysql\u查询的返回值。编辑:您的插入缺少一个右括号。您自己提供的一些模糊线索,关于正在发生的事情与您预期的情况可能会有用。不过,这一点很突出。mysql_select_db'database NAME'@Ibrahimazharmar没有任何错误消息,只是在我提交表单时没有添加任何错误消息。@TonyHopkinson我已经用真实代码输入了服务器、用户名、密码和数据库,我只是把它们带到这里。@EdCox,你读过我的答案了吗?我已经将问题中的代码更新为我现在得到的代码,但它仍然不起作用。没有任何错误消息,只是没有添加。这就是为什么你给我一个警告??你是说你没有报价问题。。如果你仍然有一个问题,那么它是新的。。。你用新的错误更新了你的问题,没有给那些试图帮助你的人-1我没有给你-1,或者其他人知道你现在犯了什么错误。。所以我可以帮你解决它…它一点也不出错,当我提交表单时,它似乎有效,但什么都没有出现。我没有给你a-1,或者其他人
$sql = "
INSERT INTO userlinks
(username, linkaddress, linkname)
VALUES ('%s','%s','%s')
";
mysql_query(
sprintf(
$sql,
mysql_real_escape_string( $_SERVER ['AUTH_USER'] ),
mysql_real_escape_string( $_POST ['linkaddress'] ),
mysql_real_escape_string( $_POST ['linkname'] )
)
);