所以我想从我的数据库中删除一个随机记录:
mysql_connect("127.0.0.1","my_shop","xxxxxx");
mysql_select_db("my_shop_db");
error_reporting(E_ALL && ~E_NOTICE);
$random_record = "SELECT * FROM products ORDER BY RAND() LIMIT 1";
$random_product = mysql_query($random_record) or die ($random_record);
echo $random_product['id'];
到目前为止我尝试了什么:
我的剧本出了什么问题?
答案 0 :(得分:2)
那不行。你做了一个查询。您应首先使用mysql_fetch_assoc或其他函数获取数据以获取输出。
并且mysql_*
函数已弃用,您应该从mysqli或PDO和预处理语句开始。
答案 1 :(得分:1)
mysql_*
被弃用且不安全且不应再使用的强制性评论。
mysql_query
返回资源对象而不是数组。您需要将数据提取到数组中,以便可以访问它。
$random_record = "SELECT * FROM products ORDER BY RAND() LIMIT 1";
$random_product = mysql_query($random_record) or die ($random_record);
//fetch data
$data_array = mysql_fetch_assoc($random_product);
echo $data_array['id'];
print_r
数组,以便您了解结构以及如何访问所需的元素。
答案 2 :(得分:0)
很多人在这里(正确地)指出不应再使用mysql,然后继续使用mysql回答问题。我认为值得向你展示改变mysqli是多么容易。使用dan08的答案作为跳跃点:
//set up connection, save it into the $link variable
$link = mysqli_connect("127.0.0.1","my_shop","xxxxxx", "my_shop_db");
//your query, same as before
$random_record = "SELECT * FROM products ORDER BY RAND() LIMIT 1";
//almost the same syntax as mysql_*, but with the $link added in to specify the connection
$random_product = mysqli_query($link, $random_record) or die ($random_record);
//fetch data
$data_array = mysqli_fetch_assoc($random_product);
echo $data_array['id'];