PHP和MySQL:添加到数据库和检索的代码有什么问题

PHP和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');

它应该允许您向数据库添加个人链接,并且服务器运行的是带有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'); 

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'] )
    )
);