我正在连接数据库:
$con=mysql_connect("localhost","root","");
mysql_set_charset('utf8',$con);
mysql_select_db("mydb");
当我尝试使用此代码在每个内部使用一行时使用
$question = fetch_row("SELECT * FROM `mytable` WHERE PyetjaNr = $i ORDER BY RAND() LIMIT 1 ");
我收到此错误:
Fatal error: Call to undefined function fetch_row()
相同的代码在我的托管服务器(mysql 5.5)中工作, 但不能在我的localhost mysql(5.6),
中工作mysql版本有问题吗?除了升级到mysqli,我能做什么吗?
答案 0 :(得分:1)
您可能在PHP手册中错过了这一点(在这种情况下,您应该阅读您使用的函数的手册),但mysql_...
函数已被弃用,并且几乎肯定不会在5.7中出来。它们被mysqli_...
函数集替换,所以请改用它们。
mysqli::set_charset的PHP手册涵盖了您需要的初始设置,然后从数据库中获取数据只需querying it the normal way。
这通常意味着使用预准备语句而不是仅仅将SQL构建为字符串(因为您希望是安全的,您不希望成为Bobby Tables)
擦除您现有的内容,使用mysqli
功能重做它。如果您的问题仍然存在,至少现在您将拥有人们可以评论的现代代码,以便提出您的问题。