php&;mysql查询-无法从mysql返回所需的变量
更新:在对$\u GET变量进行的一些附带验证中,必须有一个小的语法错误。我仔细地重写了所有的内容,现在脚本开始工作了。谢谢大家! 我花了5个多小时试图找出我的代码有什么问题 第1页:db查询从db检索一些vimeo视频,并向每个视频显示一个“编辑”链接,该链接动态获取视频id(vimeo 8位id)。为此,我只需调用以下函数:php&;mysql查询-无法从mysql返回所需的变量,php,mysql,syntax-error,Php,Mysql,Syntax Error,更新:在对$\u GET变量进行的一些附带验证中,必须有一个小的语法错误。我仔细地重写了所有的内容,现在脚本开始工作了。谢谢大家! 我花了5个多小时试图找出我的代码有什么问题 第1页:db查询从db检索一些vimeo视频,并向每个视频显示一个“编辑”链接,该链接动态获取视频id(vimeo 8位id)。为此,我只需调用以下函数: function edit_portfolio_videos() { global $connection; $query = "SELECT * FROM portf
function edit_portfolio_videos() {
global $connection;
$query = "SELECT * FROM portfolio_videos ORDER BY video_id ASC";
$portfolio_videos_set = mysql_query($query, $connection);
confirm_query($portfolio_videos_set);
while ($portfolio_video = mysql_fetch_array($portfolio_videos_set)) {
echo "<iframe src=\"http://player.vimeo.com/video/";
echo $portfolio_video['video_code'];
echo "?title=0&byline=0&portrait=0&color=ffffff\" width=\"400\" height=\"230\" frameborder=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe><br />";
echo "<a href=\"edit_portfolio_video.php?videocode={$portfolio_video['video_code']}\">Edit this Video</a>";
}
}
}
然后
$selected_video = get_selected_video_by_id($_GET['videocode']);
要将与所选视频相关的各种数据放入编辑表单中,请执行以下操作:
<form action="edit_portfolio_video.php?videoid=<?php echo $selected_video['video_code']; ?>" method="post">
<input type="text" name="video_title" value="<?php echo $selected_video['video_title']; ?>" />
</p>
<p>Video Code (vimeo):<br />
<input type="text" name="video_code" value="<?php echo $selected_video['video_code']; ?>" />
</p>
<p>Video Description:<br/>
<textarea name="video_description" rows="5" cols="70"><?php echo $selected_video['video_description']; ?></textarea>
</p>
<p>
<input type="submit" name="submit" value="Save Video" />
</p>
</form>
}我认为您应该尝试使用此方法来执行get\u selected\u video\u by\u id SQL查询
$query = "SELECT * FROM portfolio_videos WHERE video_code = ".$video_code;
当然注意参数中的SQL注入,并且,正如已经提出的建议,请考虑使用PDO或MySQL.< /P> < P>您的表单看起来很奇怪: 您正在使用POST模式传递GET值(edit_portfolio_video.php?videoid=…等)。 但这不应该是问题所在
在这方面:$selected_video=get_selected_video_by_id($_get['videocode'])代码>
您确定要传递的GET参数是videocode吗?还是videoid?您确认$video不是空的吗?(您确定通过\u id获取\u selected\u video\u实际返回视频吗?)我刚刚添加了confirm\u query()函数定义。请不要使用mysql\u*
函数编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果你选择PDO,.@MadaraUchiha:注意,在当前稳定的PHP版本中,他们还没有为这些函数添加E_DEPRECATED
。它们可能被用于网络上所有活动PHP代码的一半。lolI同意,但我是一个初学者,当我开始学习PHP时,w3schools成绩最好并不是我的错。然而。。。你能帮我回答第一个问题吗?(lol)我已经试过了,但是我得到了以下错误:“数据库查询失败:您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以获得在第1行的“LIMIT 1”附近使用的正确语法”。哎呀。你的视频代码不是唯一的吗?然后去掉查询的limit1部分$query=“从组合视频中选择*,其中video\u code=“.$video\u code;视频编码不是唯一的。我尝试了你的建议,但我得到了这个错误:“数据库查询失败:您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,在第1行的“”附近使用正确的语法。尝试将视频代码强制转换为一个整数,如$video\u code=(int)$video\u代码。同时,为什么视频代码不是唯一的?对我来说没什么意义。如果不是唯一的,在给定ID代码的情况下,您的应用程序如何知道要加载哪些vimeo视频-/你是说intval()吗?视频代码是唯一的,因为每个vimeo代码都是唯一的。但是在MySQL中视频代码并没有设置为“唯一”字段。啊哈!我甚至没有看到表单中的POST/GET内容。OP中的代码有太多错误。是的,我传递的是视频代码,而不是视频id。我应该重命名此函数,因为我最初使用其数据库id将所选视频的代码传递到URL中。
function confirm_query($result_set) {
if (!$result_set) {
die("Database query failed: " . mysql_error());
}
$query = "SELECT * FROM portfolio_videos WHERE video_code = ".$video_code;