我有一个脚本,它更新我的表的列并在其中写入一个id。
我需要检查列是否为空,如果不是:我添加','。
这是脚本:
$subs = mysql_fetch_array(mysql_query("SELECT subscribed_user_id FROM users WHERE user_id=".(int)$_GET['user']));
$subs_array = array();
$subs_array=explode(',', $subs['subscribed_user_id']);
if(!in_array($_COOKIE['user_id'], $subs_array))
{
if($subs['subscribed_user_id']=='')
{
$add='';
} else {
$add = $subs['subscribed_user_id'].',';
}
mysql_query("UPDATE users SET subers=subers+1, subscribed_user_id='".$add.$_COOKIE['user_id']."' WHERE user_id=".(int)$_GET['user']);
}
我有一个想法:总是添加',',但是当我选择它时,不要使用数组的全长,但是,例如,array.length-2 ......我认为它不行,那个这就是为什么我需要一个建议:如何改进这个脚本?
提前谢谢你!
答案 0 :(得分:5)
您可以使用不不推荐使用的扩展名作为示例进行改进:
PDO:
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->execute(array(':username' => $_GET['username']));
或MySQLi:
$query = $mysqli->prepare('SELECT * FROM users WHERE username = s');
$query->bind_param('s', $_GET['username']);
这些扩展具有内置的参数化功能,可以让您安全地将数据插入数据库。